Работал ли с индексами в MongoDB
Python
Middle
Без компании
Работал ли с индексами в MongoDB
Ответы
Да, работал. Индексы в MongoDB ускоряют выполнение запросов, аналогично индексам в реляционных БД. Основные типы:
- **Single Field** – на одно поле
- **Compound** – на несколько полей (порядок важен)
- **Multikey** – для массивов (индексирует каждый элемент)
- **Text** – полнотекстовый поиск
- **Geospatial** – для геоданных
Пример создания индекса:
```
# Создание индекса по полю 'email'
db.users.create_index([("email", pymongo.ASCENDING)], unique=True)
# Составной индекс
db.orders.create_index([("user_id", 1), ("date", -1)])
```
**Нюансы:**
- Индексы ускоряют чтение, но замедляют запись (т.к. их нужно обновлять)
- Используйте `explain()` для анализа запросов
- Для текстового поиска нужен спец. индекс (`text`)
- Уникальные индексы (`unique=True`) могут быть полезны для избежания дублей