Накопительная сумма с MongoDB 4.2 - PullRequest
0 голосов
/ 17 апреля 2020

Я использую MongoDB 4.2, коллекция следующая:

{ "_id" : 1, "group_id": 1, "amount" : 10 }
{ "_id" : 2, "group_id": 1, "amount" : -5 }
{ "_id" : 3, "group_id": 1, "amount" : 8 }
{ "_id" : 4, "group_id": 2, "amount" : -1 }
{ "_id" : 5, "group_id": 2, "amount" : 7 }
{ "_id" : 6, "group_id": 2, "amount" : -2 }
{ "_id" : 7, "group_id": 3, "amount" : 10 }
{ "_id" : 8, "group_id": 3, "amount" : 15 }

Как мне создать промежуточную сумму документов?

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:

Примечание 1: Документы должны быть отфильтрованы с помощью _id с указанием диапазона, например between _id:2 and _id:7.

Результат должен быть следующим:

{ "_id" : 2, "group_id": 1, "total_amount" : -5 }
{ "_id" : 3, "group_id": 1, "total_amount" : 3 }   // (it was 8 but summing the previous -5 + 8 (current) = 3
{ "_id" : 4, "group_id": 2, "total_amount" : -1 }
{ "_id" : 5, "group_id": 2, "total_amount" : 6 }   // (it was 7 but summing the previous -1 + 7 = 6
{ "_id" : 6, "group_id": 2, "total_amount" : 4 }   // (it was -2 but summing the previous 6 - 2 = 4
{ "_id" : 7, "group_id": 3, "total_amount" : 10 }

Примечание 2: Промежуточная сумма должна соответствовать group_id и сортироваться по _id (сортировка важна для суммирования, конечно). Я должен только суммировать документы с одинаковыми group_id (по заказу _id)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...