$avg, $max, $min, $round, $first и $last считают значения внутри групп.
Compass позволяет собирать стадии визуально и копировать массив pipeline из квадратных скобок.
Топ-3 ошибки: фильтровать после группировки не тем полем, забыть знак $ перед полем, группировать массив countries без понимания структуры результата.
Ключевые идеи
Агрегация и группировка
Источник объясняет агрегацию как сочетание стадий и функций. В отличие от find(), где фильтр возвращает документы почти в исходном виде, pipeline может последовательно фильтровать, группировать, сортировать и менять форму результата.
Процесс передачи данных от одной стадии к другой называется Aggregation Pipeline.
Популярные стадии
$match фильтрует документы и близок к Filter в Compass. $group собирает документы в группы, где _id задаёт ключ группировки. $sort упорядочивает результат. $skip и $limit управляют количеством строк. $project показывает или скрывает поля.
Функции в агрегации
$sum считает или суммирует, $avg рассчитывает среднее, $max и $min находят границы, $round округляет, $first и $last берут первый или последний документ в группе. Для $first/$last обычно нужна предварительная сортировка.
Тип year в imdb
Источник отдельно предупреждает: в коллекции imdb поле year хранится как текст. Поэтому для диапазона 1980-1990 пример использует $in со строками, а не $gte/$lte по числам.
Проверить по документации: интерфейс MongoDB Compass и набор доступных стадий зависит от версии Compass и MongoDB Server.