если предположим что в значение data храниться список ваших данных
var data = [{
"_id" : ObjectId("56e6b657753c6d890f614820"),
"user" : ObjectId("56d9793edf03960106872e76"),
"status" : ObjectId("56bd55d111b7ed891118a65b"),
"created" : ISODate("2016-03-14T13:02:15.030Z"),
"sum" : 20}, ........ ];
тогда можно использовать функцию Reduce
data.reduce(function (result, o) {
var key = o.user;
var counter = 1;
if (!(key in result)) {
result.arr.push(result[key] = {
user: o.user,
couter: counter,
total: o.sum
});
} else {
result[key].total += o.sum;
counter++;
}
return result;
}, { arr: [] }).arr;
получите результат по полю юзер, и общая сумма и количество закаков
По водителю, делаете тоже самое просто вместо user используете driver как ключ.
var key = o.driver;
Рабочий пример на jsFiddle