У нас есть коллекция следующим образом - Пакеты (0,1,2 etc)
выполняющихся заданий в чанах.
Каждый пакет будет иметь несколько чанков / документов с заданиями.
Нам нужно агрегировать задания для каждого пакета.
После этого счетчик работ для каждого пакета необходимо вычитать из счетчика для пакета '0'
.
Результатом будет массив / сбор разницы в количестве заданий для каждого пакета с пакетом 0 соответственно.
Если есть пакеты 'x', размер массива будет, очевидно, x-1.
Можно ли это сделать за одну операцию агрегирования?
{
"_id": ObjectId("xxxxxx"),
"batch": ["0"],
"jobs":2500
},
{
"_id": ObjectId("xxxxxx"),
"batch": ["1"],
"jobs":1500
},
{
"_id": ObjectId("xxxxxx"),
"batch": ["0"],
"jobs":1500
},
{
"_id": ObjectId("xxxxxx"),
"batch": ["2"],
"jobs":3500
},
{
"_id": ObjectId("xxxxxx"),
"batch": ["1"],
"jobs":500
},
{
"_id": ObjectId("xxxxxx"),
"batch": ["0"],
"jobs":1500
},
{
"_id": ObjectId("xxxxxx"),
"batch": ["3"],
"jobs":2500
},
Ожидаемый результат:
[ 3500,2000,3000]