← К оглавлению занятия

📖 Теория

📁 Блок: MongoDB / Atlas, индексы и импорт данных ⏱️ Время изучения: ~90 мин 🎯 Сложность: Практикум

⚡ Кратко: суть занятия

Практикум 17 закрепляет MongoDB Atlas, Compass, mongosh, импорт CSV, текстовые и составные индексы.

Первая задача: выбрать фильмы и сериалы с IMDb рейтингом 8 и выше, отсортировать по рейтингу и записать 50 документов в highly_rated_movies.

Если работа идёт в общей базе ich_edit, к имени новой коллекции нужно добавить своё имя для уникальности.

Вторая часть практикума: импортировать BankChurners.csv в credit_cards и исключить четыре последних технических столбца.

Для поля Education_Level создаётся text index, затем выполняется $text поиск и проверяется explain-план.

Составной индекс Education_Level + Customer_Age должен помогать фильтрации и сортировке по этим полям.

Второй составной индекс Income_Category + Total_Trans_Amt нужен для запросов по доходу и сумме транзакций.

Топ-3 ошибки: не уникализировать имя коллекции, импортировать лишние Naive_Bayes поля, проверять индекс без explain().

Разбор темы

Подготовка

Подключиться к ich_edit.movies с правами записи или к Atlas sample_mflix.movies. В общей базе имя новой коллекции должно быть уникальным.

highly_rated_movies

Практикум просит выбрать фильмы и сериалы с IMDb рейтингом 8 и выше, отсортировать по рейтингу и записать 50 документов.

Импорт credit_cards

BankChurners.csv нужно загрузить в новую коллекцию и исключить четыре последних технических столбца из источника.

Text index

Индекс по Education_Level создаётся как text index, потому что далее используется $text поиск.

Explain

После поиска нужно проверить план выполнения: запрос должен использовать индекс, а не полный просмотр коллекции.

Составные индексы

Пары Education_Level + Customer_Age и Income_Category + Total_Trans_Amt отрабатываются и в mongosh, и в Compass.

Проверить по документации: часть практических деталей может зависеть от версии MongoDB, Atlas или Compass. Перед занятием сверяйте интерфейс и команды с официальной документацией.