2013-04-13 5 views
0

내 문서는 다음과 같습니다.요소를 제한하는 MongoDB 하위 문서 쿼리

{ 
    ID: "XYZ", 
    messages: [ 
     { 
      ID: "AAA", 
      text: "this is a message" 
     }, 
     { 
      ID: "BBB", 
      text: "this is a message" 
     }, 
     { 
      ID: "CCC", 
      text: "this is a message" 
     }, 
     { 
      ID: "DDD", 
      text: "this is a message" 
     }, 
     { 
      ID: "EEE", 
      text: "this is a message" 
     }, 
     { 
      ID: "FFF", 
      text: "this is a message" 
     }, 
     { 
      ID: "GGG", 
      text: "this is a message" 
     } 
    ] 
} 

그리고 집계 및 FFF

{ 
    ID: "XYZ", 
    messages: [ 
     { 
      ID: "CCC", 
      text: "this is a message" 
     }, 
     { 
      ID: "DDD", 
      text: "this is a message" 
     }, 
     { 
      ID: "EEE", 
      text: "this is a message" 
     }, 
     { 
      ID: "FFF", 
      text: "this is a message" 
     } 

    ] 
} 

CCC에서 예를 들어 메시지를 얻으려면 어떻게 이것이 가능 할까?

+0

'$ unwind','$의 match'를 사용하여 시도하고 당신의 파이프 라인에서''$ group'. – JohnnyHK

+0

이미이 문제에 대해서는 충분하지 않습니다. –

+0

시도한 것을 보여줄 수 있습니까? – JohnnyHK

답변

2

$ slice 연산자를 사용하면이 작업을 수행 할 수 있습니다. Check out the mongodb documentation on $slice.

query.slice('messages', [numOfElementsToSkip, numOfElementsToReturn]); 

이상의 특정 사용자의 요청에 : 문서를 얻고 쿼리 슬라이스 연산자를 사용하는 쿼리를 실행

query.slice('messages', [2, 4]); // Return 4 elements after skipping 2