1
我有一個嵌入式集合的文檔,但很少元素缺少一個鍵,我必須找到所有這些元素。這裏有一個例子:Mongodb:找到嵌入的元素缺少一些密鑰
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)
我需要返回「酒吧」對象,因爲其內嵌的一個沒有鑰匙「的myKey」查詢。
我嘗試使用$exists
,但它返回只有當所有的嵌入式元素缺少關鍵
db.example.find({'embedded.myKey': {$exists: true}}).size()
// -> 2
db.example.find({'embedded.myKey': {$exists: false}}).size()
// -> 0
我怎麼能找到至少一個嵌入元素缺少關鍵「的myKey」的文件?
'$ elemMatch'解決我的問題! 這裏是最後一個查詢: 'db.example.find({'embedded':{'$ elemMatch':{'myKey':{'$ exists':false}}}})'''' – 2013-05-09 17:09:49