2017-01-27 2 views
0

mongo에 $facet 집계 단계가 있기 때문에 3.4 - 멋지다. 동일한 입력 문서 세트의 단일 스테이지에서 여러 집계 파이프 라인을 처리 할 수 ​​있습니다.

그러나 하나의 $ 패싯을 다른 패싯 안에 사용할 수 없습니다. 인용 : "다른 모든 집계 단계는 $ facet, $ out, $ geoNear, $ indexStats, $ collStats와 함께 사용할 수도 있습니다.

이유를 이해하는 사람이 있습니까?

specified stage is not allowed to be used within a $facet stage: 0: { $facet: { subFirst1: [ ... ] } }" 

답변

0
:이하려고하면

{ 
    first: { 
    subFirst1: {...}, 
    subFirst2: {...} 
    }, 
    second: {...} 
} 

이 오류가 발생합니다 :처럼 이것은 문서를 생성한다

db.collection.aggregate([{ 
    $facet: { 
    'first': [ 
     $facet: { // here is the sub $facet 
     'subFirst1': [], 
     'subFirst2': [] 
     } 
    ], 
    'second': [ 
     //... 
    ] 
    } 
}]) 

: 난 그냥 이런 식으로 $면을 사용하려면

$facetaggregation pipeline stage 연산자이므로 be the first stage in the pipeline이 필요합니다. 다른 파이프 라인 단계에서 표현으로 사용하지 마십시오.