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

📝 Задания

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

Задания из источника

1

Задание 1

Подключиться к Ich.credit_cards.

2

Задание 2

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

3

Задание 3

Определить средний кредитный лимит по категориям дохода.

4

Задание 4

Найти средний возраст и средний кредитный лимит для каждого семейного статуса.

5

Задание 5

Найти самый часто встречающийся уровень образования среди клиентов.

6

Задание 6

Подключиться к ich.bookings.

7

Задание 7

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

8

Задание 8

Подключиться к ich.sample_training.

9

Задание 9

Найти города с наибольшим населением.

10

Задание 10

Подсчитать общее количество городов в каждом штате.

11

Задание 11

Найти среднее население по штатам.

12

Задание 12

Найти 10 самых крупных ZIP кодов штата IL.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Как найти средний возраст по категориям образования?

Вопрос 2

Что нужно для самого частого уровня образования?

Вопрос 3

Когда _id в $group делают null?

Вопрос 4

Какой этап должен идти перед поиском ZIP кодов штата IL?

Вопрос 5

Что делает $sum: 1 в $group?

Вопрос 6

Почему важно смотреть реальные имена полей?