Я начал получать правильную индексацию в Mongo, но есть одна вещь, которую я немного смутил.Mongo индексы при поиске по одному значению, сортировка по другому
Если я хочу искать на одном поле (уровень) и сортировать по другому (случайному), как мне настроить этот индекс? Какое поле на первом месте?
Примечание: выше, случайным, я имею в виду, что у меня есть поле, называемое случайным. Я не сортирую в случайно выбранном поле.
Извините за путаницу. У меня есть поле, называемое случайным, которое имеет случайное значение, чтобы создать случайный порядок. Я уточню в ОП. Но спасибо за ответ. В принципе, всегда индекс от самого большого набора до наименьшего? – RhoVisions
В этом случае ваш индекс должен быть {level: 1, random: 1}, но убедитесь, что ваш запрос включает равенство по уровню. Чтобы сортировка использовала индекс, перед запросом должна быть включена часть до сортировки. Поэтому, если у вас есть индекс {a: 1, b: 1, c: 1}, запросы db.data.find (a: "foo", b: "bar"). Sort ({c: 1}) и db. data.find (a: "foo"). sort ({b: 1}) будет использовать индекс, но запрос db.data.find (a: "foo"). sort ({c: 1}) не будет использовать индекс и придется сортировать по памяти. – Gennadiy