Ответ
Да, работал. В MongoDB индексы ускоряют поиск и сортировку, но замедляют запись. Основные типы:
- Single Field — индекс по одному полю.
- Compound — по нескольким полям (порядок важен!).
- Multikey — для массивов (индексирует каждый элемент).
- Text — полнотекстовый поиск.
- TTL — автоматическое удаление документов по времени.
Пример создания индекса:
indexModel := mongo.IndexModel{
Keys: bson.D{{"username", 1}}, // 1 - ascending, -1 - descending
}
_, err := collection.Indexes().CreateOne(context.Background(), indexModel)
Важно:
- Избыток индексов увеличивает нагрузку на запись.
- Используйте
explain()для анализа запросов. - Уникальные индексы (
unique: true) предотвращают дублирование.