2016-07-26 19 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クエリで直接ネストされたオブジェクト:あなたは$inを使用し、指定したすべての項目の中で少なくとも一つを一致するレコードを要求する

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

をしたい場合:

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() 
関連する問題