Database
[{_id:"id1",provider_id:"provider1",service_code:"code1",price:20},{_id:"id2",provider_id:"provider1",service_code:"code2",price:20},{_id:"id3",provider_id:"provider1",service_code:"code3",price:20},{_id:"id4",provider_id:"provider2",service_code:"code1",price:10},{_id:"id5",provider_id:"provider2",service_code:"code2",price:20},{_id:"id6",provider_id:"provider3",service_code:"code1",price:20}]
Query
db.collection.aggregate([{$match:{service_code:{$in:["code1","code2"]}}},{"$group":{"_id":"$provider_id","total_price":{"$sum":"$price"}}},{"$project":{"provider_id":"$_id","total_price":1,"_id":0},},{$sort:{total_price:-1}}])