私は報告アプリを持っていますが、私はmongodbコマンドを生成し、3つの集約呼び出しを実行します。集約コールにはパイプ内に[match、group、project]があります。彼らの$の試合は、彼らが同じ集計呼び出しにすることはできません異なっているため、これらの呼び出しのための
RESULT OF AGGREGATE 1-3
{_id: <XXX>, ...}
グループ「_id」は、同じですが、。これらの集計結果のすべてに参加する必要があります。これを解決する方法の1つは$ groupステージで条件を使用することですが、問題は条件が複雑な$ groupパイプと混在することです。
不可能ではないにしても、その解決策がなぜ非常に難しいのかを説明します。データは非常に巨大であり、各ドキュメントには700の属性があり、ドキュメントは1日あたり約1kで表示されます。このような複雑な条件を$ groupステージの各フィールドに生成すると、混乱が生じます。
これらの集計結果を結合するためにmap-reduceを実行している回答がありましたが、私は他の解決策を探しています。私が研究したように、集計には$ outパイプがあります。これらの集計結果を結合するために$ outパイプを操作できる方法はありますか? (なぜなら、$ outを考える理由は、結果としてすべての結果をレポートとして保存する必要があるからです)
さて、 '$ out'は常にコレクションを上書きします。基本的には、カーソルを反復し、カーソルの繰り返しごとに別のコレクションに出力するか、何をする必要があるかを行う必要があります。それは、その質問から完全に欠けているその細部です。関係のない大きな怖い数字は忘れてしまいます。実際の問題を、基本的な文書の例と望ましい結果で記述してください。 –