2013-11-21 6 views
0

"유형"필드로 집계 및 그룹화하는 콜렉션이 있습니다. 최종 결과는 각 유형에 최대 5 개의 문서 여야합니다. 그러나 그룹 전에 제한한다면 처음 다섯 개의 문서 만 그룹화됩니다. 그룹 뒤에서 제한하면 처음 다섯 가지 유형이 반환됩니다.그룹화 중 몽고 집계 제한

각 유형에 대해 find()를 수행하지 않고이 작업을 수행하는 방법은 5 개로 제한하고 모든 결과를 병합 하시겠습니까?

답변

-3

당신이 (당신이 MongoDB에 대한 내 빠른 구글 검색에 따라), 당신은 GROUPBY의에 "ResultSelector-기능"을 가지고있는이 같은 중 하나를 사용하여이 작업을 수행 할 수 있습니다 C#을 사용하는 경우 :

var groups = Enumerable.Range(0, 1000). 
       GroupBy(
         x => x/10, 
         (key, elements) => new { Key = key, Elements = elements.Take(5) } 
         ); 

이 코드의 속도 - 결과 선택기가 인스턴스화되기 전에 그룹이 완전히 빌드되었다고 생각합니다. 따라서 입력 시퀀스에 대한 사용자 정의 foreach가 손으로 그룹을 작성하는 것이 더 빨라질 수 있습니다. 완료)

추신 : 두 번째 생각 - 나는 내 대답을 당신이 원하는 하나 의심. 나는 mongo-DB 문서를 보았고 "지도"를 적절한 "축소"기능과 함께 사용하면 원하는 것일 수 있습니다.

+0

죄송합니다.이 답변을 찾으시는 것이 아닙니다. – astroanu