我有一个包含嵌入式集合的文档,但是很少有元素缺少键,我必须找到所有这些元素。这是一个例子:
var foo = {name: 'foo', embedded: [{myKey: "1", value: 3}, {myKey: "2", value: 3}]}
db.example.insert(foo)
var bar = {name: 'bar', embedded: [{value: 4}, {myKey: "3", value: 1}]}
db.example.insert(bar)
我需要一个返回“bar”对象的查询,因为其中一个嵌入对象没有键“myKey”。
我尝试使用$exists
,但仅当所有嵌入元素都缺少键时才会返回
db.example.find({'embedded.myKey': {$exists: true}}).size()
// -> 2
db.example.find({'embedded.myKey': {$exists: false}}).size()
// -> 0
如何找到至少一个嵌入元素缺少键“myKey”的文档?