У меня есть коллекция mongodb, "features", имеющая 3 поля: имя, активный, вес. Я сортирую функции по убыванию:
db.features.find({active:true},{name:1, weight:1}).sort({weight:-1})
для оптимизации, я создаю для него индекс:
db.features.ensureIndex({'active': 1, 'weight': -1})
Я вижу, что он хорошо работает при использовании explain()
в запросе.
Однако, когда я запрашиваю его по возрастанию по весу, я предполагаю, что только что созданный индекс не будет работать, и мне нужно создать еще один индекс по возрастанию веса. Запрос:
db.features.find({active:true},{name:1, weight:1}).sort({weight:1}).explain()
когда я использую объяснение(), чтобы показать, как работает индекс, я нахожу его печатным:
"cursor" : "BtreeCursor active_1_weight_-1 reverse",
означает, что индекс обратный означает, что запрос оптимизирован индексом?
Как правило, мне нужно создать 2 индекса, например, по возрастанию по весу и по убыванию по весу, если я отсортирую его по весу в любом случае и спустившись в других случаях?