私は次の状況にあります:
- 私は次のようなドキュメントのコレクションを持っています
{a: 1, b: 'some string', c: 5, d: 7 } {a: 2, b: 'some another string', c: 5, d: 8 } {a: 3, b: 'yet another string', c: 5, d: 9 }
- ユーザーがカスタムクエリを使用して検索できるようにするため、次の検索を実行できる場合があります。
{a: 2, c:5} {c:5, d:8}
- 使用されるフィールドの一部は必須です(例:c)
- クエリがより高速に機能するように、cのインデックスを設定することを考えました。
db.my_collection.find({c:5})
それはうまく機能しますが、私が起動すると:
db.my_collection.find({c:5、d:8})
インデックスを使用した場合と同じ時間がかかります:(
だから私の質問は:クエリが最初にインデックスを持つキーの内部を検索し、それらのキーの内部よりも検索するように、ある種の部分インデックスを設定することは可能ですか?