$group в Aggregation PipelinesСтадия $group группирует документы по указанному ключу и вычисляет агрегированные значения для каждой группы. Это один из наиболее часто используемых этапов в MongoDB aggregation pipelines.
Ты определяешь ключ группировки с помощью поля _id. Все документы с одинаковым значением ключа объединяются в один выходной документ. Затем ты можешь применить операторы-аккумуляторы для подсчёта итоговых значений для каждой группы.
db.orders.aggregate([
{ $group: { _id: "$customerId", totalSpent: { $sum: "$amount" } } }
])
Этот пример группирует заказы по customerId и вычисляет общую сумму, потраченную каждым клиентом.
$sum — вычисляет сумму числовых значений$avg — рассчитывает среднее числовых значений$min / $max — возвращает наименьшее или наибольшее значение в группе$push — собирает все значения в массив (допускает дубликаты)$addToSet — собирает уникальные значения в массив$first / $last — возвращает первое или последнее значение из группы (на основе порядка документов)_id в null группирует все документы в один результат$group не сохраняет исходную структуру документа — возвращаются только _id и вычисленные поля$sort или $match для более точных результатовСтадия $group сохраняет все исходные поля из документов и добавляет вычисленные поля аккумуляторов рядом с ними в выводе.
Новый — ещё не проверен сообществом
Вы