Мне трудно решить, где лучше всего поместить поле сортировки в составной индекс mongodb.
Насколько я понимаю, нам нужно выбрать наивысшую мощность и селективность в качестве предыдущих полей в составном индексе
db.person.createIndex({ rating: 1, name: 1, gender: 1});
В этом примере рейтинг варьируется только от 1 до 5, а пол - M или F. Таким образом, имя - это всегда наибольшая мощность и селективность, и оно должно быть самым левым полем в составном индексе; однако сценарий использования для запроса таков, что в запросе всегда указывается оценка, а имя или пол можно указать с помощью фильтра в приложении.
Какой вариант лучше всего подходит для этого случая:
1)
db.person.createIndex({ rating: 1, name: 1, gender: 1});
2)
db.person.createIndex({ rating: 1});
db.person.createIndex({ name: 1, gender: 1});
db.person.createIndex({ gender: 1});