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

📝 Задания

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

Задания из источника

1

Подключение

Подключитесь к ich_edit.movies с правами записи или используйте Atlas sample_mflix.movies.

2

highly_rated_movies

Выберите фильмы и сериалы с imdb.rating >= 8, отсортируйте по убыванию рейтинга и запишите 50 документов в новую коллекцию.

3

Уникальность имени

Если работаете в ich_edit.movies, добавьте своё имя к названию коллекции.

4

Импорт CSV

Создайте коллекцию credit_cards из BankChurners.csv и исключите четыре последних столбца из задания.

5

Text index

Создайте текстовый индекс по Education_Level и выполните поиск по тексту.

6

Explain

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

7

Составной индекс 1

Создайте индекс Education_Level + Customer_Age и проверьте filter/sort в mongosh и Compass.

8

Составной индекс 2

Создайте индекс Income_Category + Total_Trans_Amt и проверьте filter/sort.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Какая стадия должна идти последней при записи результата в коллекцию?

Вопрос 2

Зачем в общей базе добавлять имя к highly_rated_movies?

Вопрос 3

Какой индекс нужен для $text поиска по Education_Level?

Вопрос 4

Что показывает explain() в этой практике?

Вопрос 5

Почему перед $limit нужна сортировка по imdb.rating?

Вопрос 6

Какой порядок полей логичен для запроса фильтр по Income_Category + сортировка Total_Trans_Amt?