在Mongo系列中,我有这样的对象:
{
"domains" : {
"0" : "jwlhKRQ",
"1" : "fgqAvas"
},
...
}
如何在"jwlhKRQ"
对象中选择包含值为domains
的字段的所有文档?
单个查询是否可以实现这一目标?
答案 0 :(得分:2)
使用$where运算符,向其传递一个javascript函数,该函数会将domains
中的每个值与给定值"jwlhKRQ"
进行比较。
db.myCollection.find({ $where:
function() {
for (var key in this.domains) {
if (this.domains[key] == "jwlhKRQ") {
return true;
}
}
}
})
请注意,此类查询无法利用索引。