【发布时间】:2015-06-22 11:20:08
【问题描述】:
我正在尝试将其放入 morphia 查询中:
db.woot.find({
"bar.tables": {
$elemMatch: {
"tableId": {
$in: [3,
4]
},
"tab": {
$gte: 20000
}
}
}
})
所以我有:
Query<Table> q
q.field("bar.table").hasThisElement()
在此之后,我不知道如何完成查询,并且仍然使用支持 in()、gte() 方法的 FieldEnd,而无需自己使用 BasicDBObjects 编写整个查询。
请帮我将上面的查询转换为最好的 Morphia 等价物。
编辑:bar.tables 是一个数组,因此必须使用 elemMatch 进行匹配,否则它可以匹配某个元素的第一个条件和另一个元素的第二个条件,但只有同时匹配这两个条件的元素才有效。
【问题讨论】:
-
为了得到正确的结果:(
bar.table.tableId必须是 3 或 4)和bar.table.tab必须大于 20,00 — 正确吗? -
是的。但请注意,它也可以是任何其他运算符或数据。查询建立在指定操作符和数据的 API 之上。