Поскольку MongoDB в настоящее время использует только один индекс для запроса, вам потребуется составной индекс.
Порядок индексных параметров имеет значение, хотя не обязательно так, как вы упоминаете в вопросе.
Поскольку фильтрация выполняется первой, если индекс был (c, b, a), он не был бы очень полезен для фильтрации, особенно если в коллекции много элементов. Поля, используемые для сортировки, должны быть указаны последними в индексе.
Таким образом, индекс должен быть (a, b, c) или (b, a, c). Какой из них должен быть, зависит от селективности - другими словами, в каком поле удаляются элементы, которые не совпадают быстрее?
Если существует 10 000 вероятных значений для b и только два вероятных значения для a, тогда индекс должен быть (b, a, c). И наоборот, если есть много других возможных значений для a, то, вероятно, это должно быть (a, b, c). Если эти два поля примерно одинаковы по своей способности исключать документы из запроса, это не имеет большого значения.