現在(2.6)1つの集約パイプラインでこれを行うことは不可能だと思います。理由を正確に説明することは困難ですが、基本的に、集約パイプラインは、一度に1つのドキュメントでドキュメントのストリームの変換を実行します。ストリーム自体の状態のパイプライン内の認識はありません。これは、A、Bなどの制限に達し、同じタイプのドキュメントをさらにドロップする必要があることを判断するために必要なものです。 $group
複数のドキュメントをまとめて、それらのフィールド値を集約して、結果のグループドキュメント($sum
)に影響を与えることができます。 、$avg
など)。これは理にかなっているかもしれませんが、タイプに基づいて制限できるようにするために追加できる簡単な操作があるため、必ずしも厳密ではありません。たとえば、$push x
を追加します。 $group
へのアキュムレータ プッシュ先の配列の要素数がx未満の場合にのみ、値をプッシュします。
それを行う方法があったとしても、2つの集計を行うことをお勧めします。シンプルにしてください。