我有一个文档集合,其中每个文档都是这样的:
{'name' : 'John', 'locations' :
[
{'place' : 'Paris', 'been' : true}
{'place' : 'Moscow', 'been' : false}
{'place' : 'Berlin', 'been' : true}
]
}
位置数组可以有任何长度。
我希望匹配been
数组中所有元素的locations
字段为true的文档。 Looking at the documentation看起来我应该以某种方式使用$and,但我不确定它是否适用于子字段。
答案 0 :(得分:2)
有几种选择:
db.destinations.find({"locations.been":{$ne:false}})
答案 1 :(得分:0)
我认为使用$elemMatch
或$all
这样的标准MongoDB运算符是不可能的。唯一可行的方法是编写自定义JS查询:
db.test.find("return this.locations.every(function(loc){return loc.been});")