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

📖 Теория

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

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

Summary session 19 повторяет практические стадии aggregation pipeline.

$bucket раскладывает документы по диапазонам, например цену жилья в Барселоне.

$match фильтрует документы, $project выбирает поля, $unwind разворачивает массив reviews.

$set добавляет поля, $unset удаляет лишнее, $out записывает новую коллекцию.

Практические задачи повторяют reviews, average score, total в sales, активного reviewer, популярные cuisines, $lookup и Brighton Beach.

Закрепляющий тест спрашивает use, find, выборку по _id и skip(5).

Разбор ДЗ 19 работает с ich.Spotify_Youtube: Danceability, Energy, Duration_ms, Album, Views, Stream и экспорт top20.

Топ-3 ошибки: путать $out и $merge, забыть $unwind перед отзывами, считать skip(5) фильтром по цифре 5.

Разбор темы

$bucket

Источник определяет $bucket как этап агрегации для категоризации документов по группам. В задачах он применяется к цене жилья и оценкам ресторанов.

$match

$match оставляет только документы, которые подходят под условие. В связке с reviews он часто отсекает документы с пустым массивом.

$project

$project выбирает только нужные поля или меняет форму документа. Он полезен после группировок и перед финальным выводом.

$unwind

$unwind разворачивает массив reviews: один исходный документ превращается в несколько документов, по одному на элемент массива.

$set и $unset

$set создаёт новые поля на основе значений внутри reviews, а $unset удаляет исходное вложенное поле, если оно больше не нужно.

$out

$out записывает результат агрегации в новую коллекцию. В источнике это используется для коллекции reviews.

$lookup

$lookup выполняет left outer join между коллекциями одной базы, например customers и transactions по accounts/account_id.

Проверить по документации: дополнительные формы синтаксиса, параметры драйверов и поведение отдельных стадий могут отличаться между версиями MySQL, MongoDB, Compass, Atlas или Python-библиотек. Перед использованием в проекте сверяйте детали с официальной документацией.