Ответ 1
Индекс на price
помогает с запросами на price
. Индекс на qty
помогает с запросами на qty
. Индекс на price
и qty
помогает с запросами в price
И запросах на price
и qty
. Таким образом, это похоже на получение двух индексов по цене одного. Тем не менее, это не поможет для запросов на qty
.
Вы должны свести к минимуму количество индексов, которые у вас есть, поэтому отбросьте один из ваших индексов с одним ключом и создайте составной индекс, начинающийся с этого ключа.
Как правило, если вы выполняете запрос на x
, y
и z
, вы должны иметь индекс, например {x:1, y:1, z:1}
. Этот индекс быстро выполнит следующие запросы:
db.foo.find({x : ..., y : ..., z : ...})
db.foo.find({x : ..., y : ...})
db.foo.find({x : ...})
Он не будет быстро выполнять эти запросы:
db.foo.find({y : ..., z : ...})
db.foo.find({y : ...})
Итак, убедитесь, что у вашего запроса есть стартовый ключ индекса в нем.