MongoDBでは、複合インデックスを使用するクエリでは、インデックス内のすべてのキー、または少なくとも一部のキーを使用する必要があることを理解しています左から開始します。たとえば、クエリでless than allを使用するMongo複合インデックス
db.products.find({ "a":"foo", "b":"bar" })
{a、b、c}で構成されるインデックスをうまく利用できます。
私が照会したい場合は、:
db.products.find({"a":"foo", "c":"thing" })
を、私は、このインデックスを使用することはできませんと信じています。これは "b"に簡単な条件を加えることで解決できますか?
db.products.find({"a":"foo", "b":{ $ne : "" }, "c":"thing" })
実際にはbの値は気にしません。これは、現在45Mのオブジェクトがあり、インデックスを統合してリソースを節約しようとしているため、今後も成長する予定です。
多くのありがとうございます。
これらのクエリについて説明することはできますか? –
あなたの理解は、二重化合物インデックスに厳密に当てはまりますが、三重化合物インデックスでは必ずしも真実である必要はありません。説明を使用すると、a、b、cの索引が実際にa、cで照会するときに使用されることがわかります。 –