Aggregation pipeline в MongoDB обрабатывает документы через последовательность этапов, где каждый этап трансформирует данные и передаёт результаты на следующий.
$match – Фильтрует документы по условиям, аналогично SQL WHERE. Размещай его в начале для повышения производительности.$limit – Ограничивает количество документов, передаваемых на следующий этап.$skip – Пропускает указанное количество документов, обычно используется для пагинации.$project – Переформатирует документы: включает, исключает или переименовывает поля.$addFields – Добавляет новые вычисляемые поля, не затрагивая существующие.$unwind – Разворачивает поле с массивом в отдельные документы — по одному на каждый элемент массива.$group – Группирует документы по указанному ключу и выполняет агрегирующие вычисления, такие как$sum, $avg, $min, $max
$count – Возвращает общее количество документов на текущем этапе.$sort – Упорядочивает документы по одному или нескольким полям по возрастанию или убыванию.$lookup – Выполняет left outer join с другой коллекцией, аналогично SQL JOIN.$out – Записывает результаты агрегации напрямую в указанную коллекцию, заменяя её, если она уже существует.$redact – Управляет доступом к документам, ограничивая содержимое на основе заданных условий — полезно для защиты на уровне полей.Грамотная комбинация этих этапов позволяет тебе фильтровать как можно раньше, эффективно трансформировать данные и получать точный результат — что делает aggregation pipeline мощным инструментом для сложной обработки данных в MongoDB.
Стадию $match следует размещать в начале pipeline агрегации для улучшения производительности, фильтруя документы перед последующими стадиями трансформации.
Новый — ещё не проверен сообществом
Вы