Morphia запрос для поиска элемента, у которого поле имеет нулевое значение - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь создать запрос Morphia (используя класс типизированного запроса Query<T>), чтобы реализовать следующее:

db.getCollection('Order').find({'orderLines.trackingDetails': {$elemMatch: {deliveryDate: {$exists: false}}}})

Сложность заключается в том, как кодировать {$ exist: false} (чтобы возвращать только записи, в которых для trackingDetails есть элемент, в котором deliveryDate не существует).

1 Ответ

0 голосов
/ 01 ноября 2018

Я понял это:

DBObject query = BasicDBObjectBuilder.start()
.add("orderLines.trackingDetails",
        new BasicDBObject("$elemMatch",
          new BasicDBObject("deliveryDate",
            new BasicDBObject("$exists", false))))
.get();

Query<Order> q = datastore.createQuery(Order.class, query);
...