2016-07-26 183 views
0

不知道如何查詢具有以下結構的mongo db對象的匹配directory_object_ids。查詢嵌套Mongo數組

"_id" : ObjectId("5702e52e51c2e40f55b3fd43"), 
"_revision" : 4, 
"enabled" : true, 
"selector" : { 
    "directory_object_ids" : [ 
     ObjectId("56c4bfb793e0be0eb6297369"), 
     ObjectId("56c4bfc293e0be0eb6297391"), 
     ObjectId("56cdfc65f2325d0e6346b7fe") 
    ] 
} 

我已經試過

db.policies.find({"selector":{"directory_object_ids":{$elemMatch: {$eq:ObjectId("56cdfc65f2325d0e6346b7fe")}}}}).pretty() 

db.policies.find({"selector":{"directory_object_ids": {$eq:ObjectId("56cdfc65f2325d0e6346b7fe")}}}).pretty() 

沒有運氣。

預先感謝您。

回答

3

呼叫直接嵌套對象在find查詢:

db.policies.find({"selector.directory_object_ids": ObjectId("56cdfc65f2325d0e6346b7fe")}).pretty() 

如果您想請求匹配所有指定項目中的至少一個記錄,使用$in

db.policies.find({ 
    "selector.directory_object_ids": { 
     $in: [ObjectId("56c4bfc293e0be0eb6297391"), ObjectId("56cdfc65f2325d0e6346b7fe")] 
    } 
}).pretty() 

如果你想要求與所有指定項目匹配的記錄,請使用$all

db.policies.find({ 
    "selector.directory_object_ids": { 
     $all: [ObjectId("56c4bfc293e0be0eb6297391"), ObjectId("56cdfc65f2325d0e6346b7fe")] 
    } 
}).pretty()