2017-10-23 4 views
0

나는 내 MongoDB의에서 다음과 같은 구조를 가지고 : 나는 부모 데이터 만 선호하는 아이 (이 아이를 선택하는 방법을MongoDB를 필터 임베디드 문서

{ 
    "preferred_child": "child_id_2", 
    "children": [ 
     { 
      "id": "child_id_1" 
     }, 
     { 
      "id": "child_id_2" 
     } 
    ] 
} 

몽고 쉘을 사용하여을의 " id "는 부모의"preferred_child "id와 동일합니까?

답변

1

는 다음과 같이 필터 .aggregate()를 사용하려고 :

db.parent.aggregate(
    [ 
     { 
      $project: 
       { 
       preferred_child : 1, 
       children:{ 
        $filter:{ 
         input:"$children", 
         as:"item", 
         cond:{ 
          $eq:["$preferred_child","$$item.id"] 
         } 
        } 
       } 
      } 
     } 
    ] 
)