我正在努力创建Morphia查询(使用类型化的查询类Query<T>
)来实现以下目的:
db.getCollection('Order').find({'orderLines.trackingDetails': {$elemMatch: {deliveryDate: {$exists: false}}}})
难题在于如何为{$ exists:false}编码(仅返回trackingDetails包含不存在deliveryDate元素的记录)。
答案 0 :(得分:0)
我知道了:
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);