2番目のバージョンでは、結合されたコレクション内のドキュメントごとに集計パイプラインの実行が追加されます 。
ドキュメント 言う:
パイプラインは、一致したドキュメントごとではなく、コレクション内のドキュメントごとに実行されます。
コレクションの大きさ(ドキュメントの数とドキュメントのサイズの両方)によっては、かなりの時間がかかる可能性があります。
理にかなっています-制限の削除によるすべての追加ドキュメントでも、それらのドキュメントに対して集約パイプラインを実行する必要があります。
集約パイプラインのドキュメントごとの実行が、可能な限り最適化されていない可能性があります。たとえば、ドキュメントごとにパイプラインを設定して破棄した場合、のオーバーヘッドが簡単に増える可能性があります。 $match条件よりも。
結合されたドキュメントごとに集計パイプラインを実行すると、柔軟性が向上します。この柔軟性が必要な場合は、パイプラインを実行するのが理にかなっていますが、パフォーマンスは関係なく考慮する必要があります。そうでない場合は、よりパフォーマンスの高いアプローチを使用するのが賢明です。