2017-10-09 10 views
0

私は最初の段階でjoin towコレクションに$ lookupを使用し、 は$ skipと$ limitを使用しています。 集計パイプラインに$ skipと$ limitの後に$ルックアップを置くと、 は集約クエリのパフォーマンスに影響しますか?mongoDBルックアップを調整する

+1

試しましたか? –

+1

あなたが真実を見せてください。 – Mazz

+0

私はこれを試しましたが、現在、私はいくつかの有効なdata.differencesが有形ではありません。 –

答えて

0

クエリのパフォーマンスが低下する可能性が最も高いのは、おそらくskipです。集計$skipにはそのページの情報はありませんが、私が共有しているリンクではskipにパフォーマンスの問題があるとのことです。ほとんどの場合、集約スキップにはそれがあります。

ご質問の際は、データベースの検索/結合の前にできるだけフィルタリングする必要があります。したがって、不必要な文書/データはラムに入らないでしょう。しかし、私が言ったように、あなたの質問をずっと速くすることはないでしょう。

+0

$ lookupは参加のためにすべての文書を処理する必要がありますか? –

+0

@Masoudjf、私が知っている限り、ルックアップフィールドがインデックスされていればインデックスを使用できます。しかし、ルックアップされたドキュメントの他のunidexedフィールドは、スキャンを介して取得する必要があります。ここで本当の問題はそれです。結合されたドキュメントのいくつかを次の段階でフィルタリングする場合は、最初にそれらをフィルタリングします。 – barbakini

+0

返信ありがとう –