(a, b)
の複合インデックスをすでに作成しているため 、すべての句式はインデックスでサポートされています->mongoはコレクションスキャンの代わりにインデックススキャンを使用します。おそらく十分に速いでしょう。
参照:$または句とインデックス
今あなたの質問について
$in
フィールド全体に一致します。 (a, b)
と一致させたい場合 次に明らかに(a, b)
$in
で検索するには、埋め込みオブジェクトになる必要があります 。
埋め込みオブジェクトを作成することが現在のスキーマ/要件に適合するかどうかわからない。ただし、その場合は、 $in
$or
と比較してパフォーマンスが優れていることで知られています
:
この場合、次のようなオブジェクトが埋め込まれている場合:{e: {a: 'x', b: 'y'}}
次に、db.collections.createIndex({e: 1})
$in
とペアになっています 物事をスピードアップします