Агрегация
Рабочий процесс: узел агрегацииCommunity Edition+Введение
Используется для выполнения запросов агрегирующих функций по данным коллекции, соответствующим заданным условиям, и возвращает соответст вующие статистические результаты. Часто применяется для обработки статистики в отчетах.
Реализация узла основана на агрегирующих функциях базы данных. Сейчас поддерживается статистика только по одному полю коллекции. Числовой результат статистики сохраняется в выводе узла для использования последующими узлами.
Установка
Встроенный плагин, установка не требуется.
Создание узла
В интерфейсе настройки рабочего процесса нажмите кнопку плюса (+) в потоке, чтобы добавить узел «Агрегирующий запрос»:

Настройка узла

Агрегирующая функция
Поддерживаются 5 агрегирующих функций SQL: COUNT, SUM, AVG, MIN, MAX. Выберите одну из них для выполнения агрегирующего запроса по данным.
Тип цели
Цель агрегации можно выбрать в двух режимах. Первый — напрямую выбрать целевую коллекцию и одно из её полей. Второй — через существующий объект данных в контексте рабочего процесса выбрать связанную коллекцию «один-ко-многим» и поле для агрегиации.
Уникальные значения
Это DISTINCT в SQL. Поле для дедупликации совпадает с выбранным полем коллекции. Выбирать разные поля для этих двух параметров сейчас нельзя.
Условия фильтрации
Как и в обычном запросе коллекции, в условиях фильтрации можно использовать переменные контекста рабочего процесса.
Пример
Цель агрегации «Данные коллекции» довольно проста для понимания. Здесь на примере «по дсчёт общего числа статей в категории после добавления новой статьи» покажем использование цели агрегации «Данные связанной коллекции».
Сначала создайте две коллекции: «Статьи» и «Категории». В коллекции «Статьи» должно быть поле связи «многие-к-одному» с «Категориями», а также должна быть создана обратная связь «один-ко-многим» из «Категорий» в «Статьи»:
Далее создайте рабочий процесс с триггером события коллекции. Настройте его на запуск после добавления новых данных в коллекцию «Статьи».
Затем добавьте узел агрегирующего запроса и настройте его так:

После запуска рабочего процесса узел агрегирующего запроса подс читает количество всех статей в категории только что добавленной статьи и сохранит это как результат узла.
Если нужно использовать данные связей из триггера события коллекции, обязательно настройте нужные поля в секции триггера «Предзагрузка связанных данных», иначе выбрать их будет нельзя.

