2013-07-11 2 views
0

mongodb에 blogPost 문서 모음이 있습니다. 각 블로그 게시물에는 comments 배열에 주석 문서가 들어 있습니다. mongodb를 쿼리하고 모든 의견의 목록을 하나의 목록으로 결합 할 수 있습니까?mongodb의 모든 문서에서 배열을 선택할 수 있습니까?

나는 모든 블로그 게시물에서 모든 의견의 하나의 돌출부를 구축하고 싶습니다.

+0

각 게시물의 주석에 대한 배열을 커서로 반환하는 투영을 고려 했습니까? – WiredPrairie

+0

@WiredPrairie 나는 mongodb을 처음 사용하므로 솔직하게 말하면서 내가 무슨 뜻인지 정말로 모르겠다. – Chev

+0

http://docs.mongodb.org/manual/reference/method/db.collection.find/#project-certain-fields-in-the-result-set – WiredPrairie

답변

4

이 작업을 수행하려면 Aggregation Framework을 사용해야 할 수도 있습니다. 구체적으로는 $unwind입니다. 현재 상황에서 가능한 경우

db.blogPost.aggregate(
    { $project: { 
     _id : 0 , 
     comments: 1 } 
    }, 
    { $unwind: "$comments" } 
); 

또는, 당신은 단지 대신 데이터베이스 수준의 응용 프로그램 수준에서 의견의 연결을 수행 할 수있는 모든 블로그 게시물을 통해의 단순히를 몽고 쿼리를 만드는 : 예를 들어

.

+0

집계를 선택하는 경우, 결과와 같은 제한 사항은 16MB를 초과 할 수 없습니다. http://docs.mongodb.org/manual/core/aggregation/ – WiredPrairie

+0

또한 결과가 반환되기 전에 모든 결과를 수집해야 할 수도 있습니다. 이는 성능 문제 일 수 있습니다. – WiredPrairie

+0

16MB 제한에 대한 좋은 점. 다시 : 당신의 다른 지점, 정말'$ 긴장 '사실인가요? 나는'$ sort'와'$ group'에만 적용한다고 생각했습니다. – DuckMaestro

관련 문제