sql >> データベース >  >> NoSQL >> MongoDB

$ lookupの他の結合条件でパフォーマンスが大幅に低下しました(パイプラインを使用)

    2番目のバージョンでは、結合されたコレクション内のドキュメントごとに集計パイプラインの実行が追加されます

    ドキュメント 言う:

    パイプラインは、一致したドキュメントごとではなく、コレクション内のドキュメントごとに実行されます。

    コレクションの大きさ(ドキュメントの数とドキュメントのサイズの両方)によっては、かなりの時間がかかる可能性があります。

    理にかなっています-制限の削除によるすべての追加ドキュメントでも、それらのドキュメントに対して集約パイプラインを実行する必要があります。

    集約パイプラインのドキュメントごとの実行が、可能な限り最適化されていない可能性があります。たとえば、ドキュメントごとにパイプラインを設定して破棄した場合、のオーバーヘッドが簡単に増える可能性があります。 $match条件よりも。

    結合されたドキュメントごとに集計パイプラインを実行すると、柔軟性が向上します。この柔軟性が必要な場合は、パイプラインを実行するのが理にかなっていますが、パフォーマンスは関係なく考慮する必要があります。そうでない場合は、よりパフォーマンスの高いアプローチを使用するのが賢明です。




    1. MongoDB-iterator_to_arrayの代わりにカーソルを使用する必要があるのはなぜですか(PHPの場合)

    2. BasicBSONListは、数値キーでのみ機能し、次のものでは機能しません。[_id]

    3. ドキュメント内のキーが平均集計を変化させる複数のフィールド

    4. (mongoose / promises)ドキュメントがupsertでfindOneAndUpdateを使用して作成されたかどうかをどのように確認しますか