Ако разбирам правилно, искате приходите по клиент и по месец.
Операторът $group в обобщена заявка е точно това, което търсите тук.
db.orders.aggregate([
{ $group : {
_id: {
customer_id: "$customer_id",
month: {$month: "$order_date"}
},
revenue: {$sum: "$net_revenue"}
}
}], ... );
С горната заявка клиентът ще се появи повече от веднъж, ако поръча в отделни месеци. Не разбрах това ли искаш или не. Ако вместо това искате общата стойност за ВСИЧКИ поръчки от този клиент, но сортирана и по ПЪРВИЯ път, когато е поръчал, направете това вместо това:
db.orders.aggregate([
{ $sort: { order_date : 1 } }, //order by date so that $first is correct
{ $group : {
_id: {
customer_id: "$customer_id",
},
month: { $first: {$month: "$order_date"} }
revenue: {$sum: "$net_revenue"}
}
}], ... );