Как читать задания практикума
Все задачи формулируются как аналитические вопросы: сначала выбрать коллекцию, затем определить поле группировки, поле расчёта и нужный агрегат.
Практикум 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 ошибки: группировать по неверному полю, забыть числовой тип у агрегируемого поля, сортировать до вычисления агрегата.
Все задачи формулируются как аналитические вопросы: сначала выбрать коллекцию, затем определить поле группировки, поле расчёта и нужный агрегат.
Для среднего возраста, кредитного лимита, топлива или населения используется $avg внутри $group. Группировка по null означает одно общее значение по всей коллекции.
Частотный анализ строится как $group с count: { $sum: 1 }, затем $sort по count: -1 и $limit: 1.
Для городов и ZIP кодов с наибольшим населением сначала отбирают нужные документы, потом сортируют по population по убыванию и ограничивают выдачу.
В Compass эти же шаги добавляются как stages Aggregation Pipeline. В mongosh они передаются массивом в db.collection.aggregate([...]).