Первым словом в индексировании всегда является официальная документация по индексу Монго .
Чтобы ответить на этот вопрос более прямо, если вы хотите, чтобы запрос использовал индексирование не только для "имени"Вам нужен индекс для всех трех полей.Хотя это можно сделать с помощью трех отдельных индексов, пара составных индексов может дать лучшие результаты:
db.people.ensureIndex({name:1, city:1});
db.people.ensureIndex({name:1, about:1});
Однако, прежде чем остановиться на каком-либо варианте, я бы использовал Mongo объясните метод , чтобы определить, какую выгоду дает вам каждый индекс по запросу без индекса (тестирование на наборе данных, таком большом, как ожидаемый производственный запрос).Я бы уделил особое внимание свойствам "nscanned" и "nscannedObjects" с каждой комбинацией индекса, а также проверил бы, что нужный индекс используется с использованием "indexOnly" и "isMultiKey".
AsИ последнее замечание: чрезмерная индексация может также вызвать проблемы с производительностью - если бы они этого не сделали, нам не пришлось бы обеспечивать индексы.Убедитесь, что вам нужно увеличение скорости чтения индексов больше, чем потери скорости записи от этих индексов.