Skip to main content

Що робить стадія $group?

Стадія $group групує документи за одним чи кількома полями і дозволяє обчислювати агрегати - суму, кількість, максимум, мінімум, середнє тощо. Це аналог GROUP BY в SQL.

Що відбувається всередині

  • документи об'єднуються за ключем (полем, вказаним у _id)
  • по кожній групі рахуються агрегатні значення ($sum, $avg, $max, $min, $push та ін.)
  • результатом стають нові документи, по одному на кожну групу

Приклад

js
{ $group: { _id: "$status", total: { $sum: 1 } } }

Результат: кількість документів у кожній групі за status.

Ключовий момент

У $group поле _id - це ключ групування. Усе, що не в _id, має бути агрегатною операцією.

Підсумок

$group - стадія, яка збирає документи в групи й обчислює підсумкові значення по кожній групі, формуючи агреговані дані.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.