Создание отчётов

Отчёты (Reports) — инструмент для формирования новых структур на основании уже созданных, с использованием фильтров и группировок.

Важно!

Доступно только при использовании MongoDB

При создании копии приложения в разделе Version management, следует обращать внимание на наличие отчётов. Если вы добавляете отчёт, обязательно указывайте и его структуру, иначе снепшот будет некорректным.

Что внутри?

Сам инструмент представляет собой окно с 6 блоками.

  • Initial setup

  • Add fields

  • Pre-filters

  • Expand arrays

  • Group

  • Post-filters

Чтобы сформировать отчёт, необходимо его сохранить, а затем запустить кнопкой Run.

Initial setup

В первую очередь для создания отчёта нужно указать название и структуру, на основании которой он будет строиться.

Например, создадим отчёт с названием "Отчёт по книгам" по структуре Books:

Здесь же укажем дополнительный параметр, который будет использоваться при генерации отчёта. Чтобы создать отчёт по книгам с фильтрацией по стране, где её написали, передадим параметр "country". Платформа будет сравнивать значение параметра с соответствующим полем (например, в фильтрах отчёта).

Также этот параметр можно задавать при генерации отчёта вручную, либо в сценарии через кубик. Во втором случае в кубике запуска отчёта нужно указать значение, которое должно быть передано в параметр. При подстановке значения можно использовать шаблонизацию: {{country}}.

Add fields

После заполнения предыдущего блока нужно выбрать набор полей, которые будут участвовать в создании отчёта. Для полей типа link есть возможность провалиться в связанный объект и выбрать его поля.

Важно

При использовании ссылочных полей, они должны быть обязательно проиндексированы и перечислены в ссылочных полях. Включить индексацию нужных полей можно в настройке целевой структуры.

Pre-filters

На шаге Pre-filters настраивается предварительная фильтрация. Вы можете использовать её, если, например, хотите построить отчет не по всей структуре, а по выборке. При фильтрации есть возможность задать сразу несколько условий с помощью логических операторов OR или AND.

Набор операторов в условиях такой же, как на кубиках с условиями. Здесь же можно использовать заданные в Initial setup параметры.

В нашем случае в выборку попадут все книги, автор которых Лев Толстой.

Expand arrays

Инструмент позволяет разворачивать в отчётной структуре в отдельные объекты данные, которые были указаны в массивах.

Например, "развернём" несколько объектов, перечисленных в поле типа array или arrayLink, в каждом из которых исходное поле будет содержать только одно значение массива.

Посмотрим на примере. Имеем структуру следующего вида:

В результате указания поля Subordinates в настройках шага Explode получим отчёт с развёрнутым массивом:

Таким образом, значение развёрнутого поля можно затем использовать в группировках.

Group

На шаге Group настраиваются группировки отчёта. В Add group field перечисляются поля, уникальные значения которых будут выводиться в результате группировки. Если указать поля в Add group field, но не задать агрегацию, то вернутся уникальные наборы значений полей (аналог DISTINCT в SQL).

Добавляя агрегации в Add aggregation field, мы выбираем, по каким полям делать группировки, и какие. Доступны стандартные группировки: Count, Min, Max, Sum, Average, а также группировки для работы с массивами:

First и Last — для получения первого и последнего элемента массива соответственно. ToArray собирает массив id объектов с одинаковым значением поля, указанного в Group Fields, и группирует их по нему.

To Array Field собирает массив объектов, у которых значение поля, указанного в On field, одинаковое, и группирует их по полю, указанному в Group fields.

Post-filters

Для полученного в результате предыдущих шагов отчёта можно применить пост-фильтрацию и оставить только нужные значения по заданным условиям.