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

🔖 Справочник

📁 Блок: 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 ошибки: группировать по неверному полю, забыть числовой тип у агрегируемого поля, сортировать до вычисления агрегата.

Команды и операторы занятия

use Ich

Переключиться на учебную базу перед задачами по credit_cards и bookings.

use Ich

db.collection.aggregate()

Запустить pipeline агрегации в выбранной коллекции.

db.credit_cards.aggregate([...])

$group

Сгруппировать документы и посчитать агрегаты.

{ $group: { _id: "$education", avgAge: { $avg: "$customer_age" } } }

$avg

Посчитать среднее значение числового поля.

{ $avg: "$credit_limit" }

$sum

Посчитать количество документов в группе.

{ $sum: 1 }

$sort

Упорядочить группы или документы.

{ $sort: { count: -1 } }

$limit

Оставить верхние записи после сортировки.

{ $limit: 10 }

$match

Отфильтровать штат IL перед поиском ZIP кодов.

{ $match: { state: "IL" } }

Справочники курса

Локальный каталог MongoDB: справочник MongoDB. SQL-операторы предыдущих блоков: справочник SQL.