Этот вопрос проверяет знание различных типов индексов, поддерживаемых MongoDB, и их применения.
В MongoDB существуют следующие типы индексов:
Индекс на одно поле (Single-field)
Составной индекс (Compound index)
Текстовый индекс (Text index)
Геопространственный индекс (Geospatial index)
Хешированный индекс (Hashed index)
Шаблонный индекс (Wildcard index)
Индекс с временем жизни (TTL index)
Индекс на одно поле (Single-field): Это самый простой тип индекса, создающий индекс по одному полю. Он полезен, когда необходимо быстро искать по одному полю.
db.collection.createIndex({ field: 1 }) // Индекс по полюСоставной индекс (Compound index): Индекс, который создается на нескольких полях сразу. Это полезно, когда запросы часто используют несколько полей.
db.collection.createIndex({ field1: 1, field2: -1 }) // Индекс на несколько полейТекстовый индекс (Text index): Используется для полнотекстового поиска, позволяя искать по словам в строках.
db.collection.createIndex({ field: "text" }) // Индекс для текстового поискаГеопространственный индекс (Geospatial index): Индекс для хранения и поиска географических данных (например, координат).
db.collection.createIndex({ location: "2dsphere" }) // Геопространственный индексХешированный индекс (Hashed index): Индекс, который хеширует значения поля. Часто используется для шардирования.
db.collection.createIndex({ field: "hashed" }) // Хешированный индексШаблонный индекс (Wildcard index): Индекс, который автоматически индексирует все поля с динамическими ключами, включая вложенные объекты и массивы.
db.collection.createIndex({ "$**": 1 }) // Шаблонный индексИндекс с временем жизни (TTL index): Индекс, который автоматически удаляет документы после заданного времени.
db.collection.createIndex({ createdAt: 1 }, { expireAfterSeconds: 3600 }) // TTL индексРазные типы индексов применяются в зависимости от задач и типа данных, например, для ускорения текстовых запросов или работы с географическими данными.