Мне нужно иметь возможность создавать визуализации, которые отображают разницу между последовательными измерениями.
У меня есть диаграммы MongoDB, подключенные к экземпляру MongoDB для визуализации данных. Проблема в том, что диаграммы AFAIK MongoDB могут отображать данные только из запросов или конвейеров агрегации. Пока что мне не повезло, что я выполнил следующую задачу в агрегационных конвейерах Я начинаю задаваться вопросом, выбрали ли я неправильные инструменты для этой работы.
Мои данные выглядят примерно так после фильтрации и сортировки:
{
"run_id": "run_x",
"measurements": {
"true_positives": 5,
"false_positives": 1
}
},
{
"run_id": "run_y",
"measurements": {
"true_positives": 6,
"false_positives": 0
}
}
И мне нужно вычислить дельты между прогонами, так что я получаю:
{
"run_id": "run_x",
"measurements": {
"true_positives": 5,
"tp_delta": 0
"false_positives": 1,
"fp_delta": 0
}
},
{
"run_id": "run_y",
"measurements": {
"true_positives": 6,
"tp_delta": 1
"false_positives": 0,
"fp_delta": -1
}
}
Я смог вычислить дельты до первого или последнего измерения, но этого недостаточно. Мне специально нужны последовательные дельты. Вычисление дельт с использованием языка программирования, конечно, было бы тривиальным, но мне нужен способ передать результаты в диаграммы MongoDB. MapReduce будет работать, за исключением того, что я не думаю, что он работает с диаграммами MongoDB. Сохранение промежуточных результатов с дельтами в базу данных также невозможно, поскольку меняются условия фильтрации.
Есть ли способ достичь того, что мне нужно, с помощью конвейеров агрегации или мне следует рассмотреть другие варианты? На данный момент я очень близок к тому, чтобы бросить графики MongoDB.