0

次のクエリがあります。

a : true AND (b : 1 OR b : 2) AND ( c: null OR (c > startDate AND c <endDate))

基本的に、ソートがまったくないため、3 つのフィールドすべての複合インデックスを考えています。最初のステップでは、ブール フィールドのインデックスを使用して、ドキュメントの大部分を削除します。

次に、2 番目のフィールドのインデックスを使用して、OR 句が 2 つの個別のクエリを作成し、重複を削除しながらそれらを結合することを確認しました。したがって、これはかなり高速で効率的です。

最後の条件は日付の単純な範囲なので、インデックスにフィールドを追加するのは良い選択肢になると思います。

私の考えについて何か提案はありますか?ありがとう

4

1 に答える 1