Добавить проекцию в запрос morphia

Можно ли при выполнении запросов с Morphia ограничить возвращаемые поля (указать проекцию)?

Например, в командной строке:
db.Institution.find({name: /^Berlin/}, {slug:1})

Или это с драйвером Java: BasicDBObject project = new BasicDBObject("slug", 1); collection.find(новый BasicDBObject(), проекция);

Спасибо


person at7000ft    schedule 20.03.2013    source источник
comment
Вы проверили этот morphia.dev/1.5/guides/querying/#projections? [Я знаю, что уже поздно, но стоит новых посетителей]   -  person Saurabh Bhoomkar    schedule 09.01.2020


Ответы (1)


Да, см. https://code.google.com/p/morphia/wiki/Query#Ignoring_Fields

Pattern regex = Pattern.compile("^Berlin");
Query<InsitutionEntity> query = mongoDataStore.find(InsitutionEntity.class)
    .field("name").equal(regex)
    .retrievedFields(true, "slug").asList();

(не проверял, но должно работать так)

person xeraa    schedule 20.03.2013
comment
У меня не работает с Morphia 1.1.0. List<User> list = ds.find(User.class).retrievedFields(false, "password").asList(); Это по-прежнему возвращает все документы User с полем password. - person SSG; 05.05.2016