У меня есть запрос в mongo, так что я хочу отдать предпочтение первому полю, а затем второму полю.
Скажем, мне нужно запросить, чтобы
db.col.find({category: A}).sort({updated: -1, rating: -1}).limit(10).explain()
Итак, я создал следующий индекс
db.col.ensureIndex({category: 1, rating: -1, updated: -1})
Он работал только с оштрафованным сканированием как можно большего количества объектов, т.е. 10
Но теперь мне нужно запросить
db.col.find({category: { $ne: A}}).sort({updated: -1, rating: -1}).limit(10)
Итак, я создал следующий индекс
db.col.ensureIndex({rating: -1, updated: -1})
но это приводит к сканированию всего документа и при создании
db.col.ensureIndex({ updated: -1 ,rating: -1})
Он сканирует меньшее количество документов
Я просто хочу попросить четко рассказать о сортировке по нескольким полям и каков порядок сохранения при этом. Читая документы mongo-DB, ясно, что поле, в котором нам нужно выполнить сортировку, должно быть последним полем. Так вот в том, что я предположил в моем запросе $ne выше. Я делаю что-то неправильно?