2016-07-26 4 views
0

follow 구조가있는 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": {$eq:ObjectId("56cdfc65f2325d0e6346b7fe")}}}).pretty() 

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

을 시도했습니다.

미리 감사드립니다.

답변

3

전화 당신의 find 쿼리에 직접 중첩 된 객체 : 당신이 원하는 경우

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

그리고 :

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

모든 지정된 항목 중 적어도 하나와 일치하는 기록을 요청하려는 경우

$in를 사용 지정된 항목과 일치하는 레코드를 요청하려면

db.policies.find({ 
    "selector.directory_object_ids": { 
     $all: [ObjectId("56c4bfc293e0be0eb6297391"), ObjectId("56cdfc65f2325d0e6346b7fe")] 
    } 
}).pretty() 
을 사용하십시오. 0