Оператор $group в MongoDB позволяет эффективно группировать документы. Рассмотрим несколько примеров его использования.
Группировка по полю age
Этот пример демонстрирует простой запрос с одним этапом агрегации — $group. Группировка выполняется по полю age. Запрос содержит оператор $group с полями _id и, возможно, другими полями для агрегации.
Поле _id обязательно и содержит ключ _id со значением $age. Это выражение ссылается на поле age входных документов. Входные документы — вся коллекция persons. Все документы группируются по значению поля age.
Результат — набор документов, каждый из которых содержит уникальное значение поля age из коллекции persons. Получаем список всех уникальных возрастов (например, 27, 35 и т.д.). Результаты не отсортированы.
Группировка по различным полям
Этот пример иллюстрирует группировку по различным полям.
Группировка по полю gender ("$gender") возвращает два документа с уникальными значениями: «male» и «female».
Группировка по полю eyeColor ("$eyeColor") возвращает три результата: «brown», «blue» и «green».
Группировка по полю name ("$name") возвращает 1000 документов, предполагая, что имена в коллекции уникальны.
Группировка по полю age ("$age") возвращает 21 результат — все уникальные возрасты из коллекции.
Группировка по вложенным полям
В дальнейшем будет рассмотрен пример группировки по вложенным полям.
Оператор $group обеспечивает гибкий и простой способ группировки документов в MongoDB, позволяя получать агрегированные данные. Мы рассмотрели примеры группировки по одному и нескольким полям, включая поля с уникальными и повторяющимися значениями.