Що робить стадія $group?
Стадія $group групує документи за одним чи кількома полями і дозволяє обчислювати агрегати - суму, кількість, максимум, мінімум, середнє тощо. Це аналог GROUP BY в SQL.
Що відбувається всередині
- документи об'єднуються за ключем (полем, вказаним у
_id) - по кожній групі рахуються агрегатні значення (
$sum,$avg,$max,$min,$pushта ін.) - результатом стають нові документи, по одному на кожну групу
Приклад
js
{
$group: {
_id: "$status",
total: { $sum: 1 }
}
}Результат: кількість документів у кожній групі за status.
Ключовий момент
У $group поле _id - це ключ групування. Усе, що не в _id, має бути агрегатною операцією.
Підсумок
$group - стадія, яка збирає документи в групи й обчислює підсумкові значення по кожній групі, формуючи агреговані дані.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.