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

⚠️ Ошибки

📁 Блок: 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-категорий.

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

Работа в общей коллекции ich.UK_used_cars

Симптом: Можно повлиять на общий датасет или смешать результаты.

Исправление: Создайте ich_edit.UK_used_cars_ВАШЕ_ИМЯ и работайте только в ней.

Неверная формула l/100km

Симптом: Числа выглядят неправдоподобно.

Исправление: Используйте именно 282.481 / mpg, как в источнике.

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

Симптом: MongoDB выдаёт ошибку pipeline.

Исправление: $merge завершает pipeline и не может иметь стадии после себя.

Bucket без $match по diesel

Симптом: В категории попадают бензиновые и гибридные авто.

Исправление: Перед $bucket добавьте { $match: { fuelType: "Diesel" } }.

Нечитаемые _id bucket

Симптом: В результате видны 0, 20000, 30000 вместо названий.

Исправление: Добавьте поле category через $switch или $cond.