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

⚠️ Ошибки

📁 Блок: 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().

Типичные ошибки

$out стоит не последним

Симптом: MongoDB не сможет выполнить pipeline как задумано.

Исправление: Переставьте $out последней стадией после $limit.

Нет уникального имени в общей базе

Симптом: Коллекция другого студента может быть перезаписана или возникнет конфликт.

Исправление: Добавьте своё имя к highly_rated_movies при работе в ich_edit.

Импортированы лишние последние столбцы

Симптом: В credit_cards появляются длинные технические поля Naive_Bayes.

Исправление: На этапе импорта снимите четыре последних столбца из условия.

Создан обычный индекс вместо text

Симптом: $text поиск не работает.

Исправление: Используйте { Education_Level: "text" }.

Индекс есть, но запрос его не использует

Симптом: explain показывает COLLSCAN.

Исправление: Сверьте поле, тип индекса и форму запроса.

Составной индекс создан в обратном порядке

Симптом: Сортировка или фильтр не ускоряются.

Исправление: Поставьте первым поле равенства, вторым поле сортировки.