Оператор $group в MongoDB является важной частью агрегационных запросов. Рассмотрим его синтаксис и применение на примерах.
Синтаксис и основы $group
Синтаксис оператора $group: $group: { <объект> }. Объект содержит пары «ключ-значение», где ключи – имена полей, а значения – выражения. Поле _id обязательно, остальные – опциональны.
В примере {$group: { _id: <выражение>}}, _id определяет критерий группировки. Выражение справа от _id указывает поле, по которому будут группироваться документы. Результатом будет набор документов, каждый из которых содержит поле _id и, потенциально, другие поля, вычисляемые с помощью операторов агрегации.
Примеры использования $group
Рассмотрим примеры работы оператора $group.
Пример 1: Группировка по одному полю
{$group: { _id: "$age" }}
Группировка документов по полю age. Результат – набор документов, где поле _id содержит уникальные значения поля age исходных документов (например, 20, 21, 23).
Пример 2: Группировка по нескольким полям
{$group: { _id: { age: "$age", gender: "$gender" } }}
Группировка по уникальным парам значений полей age и gender. Результат – набор документов, где поле _id содержит вложенный документ с полями age и gender, представляющими уникальные комбинации этих значений.
Оператор $group: Резюме
Оператор $group группирует входные документы по одному или нескольким полям. Поле _id обязательно и определяет критерий группировки. Помимо поля _id, могут быть включены другие поля, вычисляемые с помощью операторов агрегации.
Практическое применение
Рекомендуется поэкспериментировать с оператором $group в консоли MongoDB для лучшего понимания. Это позволит на практике увидеть результаты группировки данных.