вам нужно использовать $ facet (доступно из MongoDB 3.4) для применения нескольких конвейеров к одному и тому же набору документов
первый конвейер : пропустить и ограничить документы
второй конвейер : вычислить общее количество всех групп
{ "$match": query },
{ "$sort": cursor.sort },
{ "$group": {
_id: { key:"$paymentFromId"},
items: {
$push: "$$CURRENT"
},
count:{$sum:1},
total:{$sum:"$value"}
}
},
{
$facet: {
docs: [
{ $skip:cursor.skip },
{ $limit:cursor.limit }
],
overall: [
{$group: {
_id: null,
groupsTotal: {$sum: '$total'},
groupsCount:{ $sum: '$count'}
}
}
]
}
окончательный результат будет
{
docs: [ .... ], // array of {_id, items, count, total}
overall: { } // object with properties groupsTotal, groupsCount
}
PS: Я заменил элементы на третьем этапе конвейера на $$CURRENT
, что для простоты добавляет весь документ, если вам нужны пользовательские свойства, укажите их.