2015-11-08 115 views
-1

我需要一個find查詢,它正在搜索數組中的現有屬性。mongoDB:檢查文檔中是否存在嵌套對象

如果是這樣的文件...

文件

{ 
    id: '123', 
    attr: 'anything', 
    author: [ 
     { id: '1' }, 
     { id: '2' } 
    ] 
} 

...我要檢查是否有與作者ID現有的文檔:

發現查詢

var id = '123'; 
var uid = '2'; 

Collection.find({ _id: id, author: { id: uid } }) 

這應該給我一個結果。

如果uid = '3'將不會有結果。

回答

1

使用"dot notation"表示嵌入式領域:

Collection.find({ "_id": id, "author.id": uid }) 

否則你所要求的具有「準確」,只有一個單一的與所請求的值對象的文檔。這只是問「一個可能的價值匹配」。