Я понимаю, что с MongoDB для запроса, чтобы использовать составной индекс, он должен использовать ВСЕ ключи в индексе или, по крайней мере, некоторые из ключей, начиная слева.Например,
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.Причина этого заключается в том, что у нас в настоящее время есть 45 млн. Объектов, и он будет продолжать расти, поэтому мы стремимся консолидировать наши индексы для экономии ресурсов.
Большое спасибо.