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

⚠️ Ошибки

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

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

Практикум 18 закрепляет агрегацию MongoDB на учебных коллекциях Ich.credit_cards, ich.bookings и ich.sample_training.

Для credit_cards нужно считать средние значения по категориям: образование, доход и семейный статус.

Самый частый уровень образования ищется через группировку, подсчёт, сортировку по убыванию и limit.

В bookings требуется найти среднее количество топлива, использованного за поездку.

В sample_training нужно анализировать города: население, штаты, средние значения и ZIP коды штата IL.

Главная конструкция занятия — aggregate() с этапами $group, $sort, $limit, $match и $project.

Топ-3 ошибки: группировать по неверному полю, забыть числовой тип у агрегируемого поля, сортировать до вычисления агрегата.

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

Неверное имя поля

Симптом: Pipeline возвращает null или пустые группы.

Исправление: Сначала откройте несколько документов и проверьте реальные имена: Education_Level или education_level могут отличаться.

Сортировка до группировки

Симптом: Топ категорий получается бессмысленным.

Исправление: Для частоты сначала $group, затем $sort по count.

Строковые числа

Симптом: $avg даёт неожиданный результат или ошибку.

Исправление: Проверьте тип поля; при необходимости используйте преобразование, но пометьте это как проверку по документации.

Неправильный штат

Симптом: Топ ZIP кодов возвращает другой регион.

Исправление: В source требуется IL, поэтому $match должен фильтровать state: "IL".