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

📖 Теория

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

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

Практикум 19 работает с собственной копией коллекции UK_used_cars.

Сначала нужно экспортировать ich.UK_used_cars или импортировать JSON из GitHub в ich_edit с личным суффиксом.

Базовые задачи проверяют производителей: список марок, максимум документов и распределение по transmission.

Для среднего пробега по производителям используется $group с $avg и счётчиком документов.

mpg переводится в l/100km формулой 282.481 / mpg и сохраняется как новое поле.

$merge нужен, чтобы записать вычисленное поле обратно в существующую коллекцию.

$bucket распределяет дизельные авто по диапазонам цены до 20000, 20000-30000, 30000-40000, 40000-60000 и выше 60000.

Топ-3 ошибки: работать в общей коллекции без копии, делить mpg на 282.481 вместо обратной формулы, забыть readable labels для bucket-категорий.

Разбор темы

Почему нужна личная копия

Источник прямо требует создать UK_used_cars в ich_edit или в своём Atlas-кластере. Это защищает исходную ich.UK_used_cars и не смешивает результаты разных студентов.

Список производителей

Чтобы вывести всех автопроизводителей, достаточно сгруппировать по полю производителя или использовать distinct. В практикуме важен переход к подсчёту документов по каждой марке.

Трансмиссия как категориальное поле

Automatic, semi-automatic и manual сравниваются как категории. $group по transmission показывает, какой тип встречается чаще.

Средний пробег

Топ-3 производителей с наибольшим средним пробегом строится через $avg по mileage, затем $sort по среднему значению и $limit: 3. Счётчик документов помогает оценить надёжность среднего.

Перевод mpg в l/100km

Формула источника: l/100km = 282.481 / mpg. Поэтому в MongoDB выражение строится через $divide: [282.481, "$mpg"].

$merge вместо ручного обновления

$merge завершает pipeline и записывает результат в коллекцию. Для практикума это удобный способ добавить вычисленное поле к тем же документам.

$bucket по цене дизельных авто

Сначала фильтруются только diesel, затем price раскладывается по заданным границам. После этого можно отсортировать bucket-группы по количеству и определить самую популярную категорию.

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