2016-08-15 4 views
0

내가 MongoDB를 또한가 어떻게 포함 된 모든 문서

[ 
    { 
     “Group”: { 
      “_id”: 1, 
      “Requests”: [ 
       { 
        “_id”:1, 
        “name”:”Request A” 
       }. 
       { 
        “_id”:2, 
        “name”:”Request B” 
       } 
      ]  
     } 
    }, 
      { 
     “Group”: { 
      “_id”: 2, 
      “Requests”: [ 
       { 
        “_id”:3, 
        “name”:”Request C” 
       }. 
       { 
        “_id”:4, 
        “name”:”Request D” 
       } 
      ]  
     } 
    } 

] 

Groups 컬렉션의 다음과 같은 데이터가 있다고 가정하자 특정 기준에 일치하는 찾을 MGO 집계 파이프 라인을 사용합니까, 나는 다음과 같은 기능을 가지고 말할 수

func GetRequests(requestIDs []string) (Request[] error){ 
     //NEED TO IMPLEMENT W/ MGO 
} 

requestIDs과 일치하는 요청의 투영 만 반환하는 경우 집계 파이프 라인을 사용하거나 필요하지 않은 경우 사용할 수 있습니까?

예를 들어

mgo 응집

requestIds
[1,2,4] 

샘플 출력을 반영 샘플 입력/질의

[ 
    { 
    “_id”:1, 
    “name”:”Request A” 
    }, 
    { 
    “_id”:2, 
    “name”:”Request B” 
    }, 
    { 
    “_id”:4, 
    “name”:”Request D” 
    } 
] 

답변

0

,617 사용해
db.groups.aggregate([{$unwind : '$Requests'}, 
        {$match: {'Requests._id' :{$in: [1,2,4]}}}, 
        {$project : {_id : '$Requests._id',name:'$Requests.name'}}]);