Database

[{supplier:1,type:"sale",items:[{"_id":ObjectId("60ee82dd2131c5032342070f"),"itemBuySum":10},{"_id":ObjectId("60ee82dd2131c50323420710"),"itemBuySum":10,},{"_id":ObjectId("60ee82dd2131c50323420713"),"itemBuySum":10},{"_id":ObjectId("60ee82dd2131c50323420714"),"itemBuySum":20}]},{supplier:1,type:"sale",items:[{"_id":ObjectId("60ee82dd2131c5032342070f"),"itemBuySum":20},{"_id":ObjectId("60ee82dd2131c50323420714"),"itemBuySum":20}]},{supplier:1,type:"return",items:[{"_id":ObjectId("60ee82dd2131c5032342070f"),"itemBuySum":100},{"_id":ObjectId("60ee82dd2131c50323420714"),"itemBuySum":70}]}]

Query

db.collection.aggregate({$match:{supplier:1},},{"$group":{"_id":"$type","supplier":{$first:"$supplier"},"data":{"$push":"$items"}}},{"$project":{_id:0,"supplier":"$supplier","type":"$_id","returns":{"$reduce":{"input":{"$reduce":{input:"$data",initialValue:[],in:{"$concatArrays":["$$value","$$this"]}}},"initialValue":0,"in":{$sum:["$$value","$$this.itemBuySum"]}}}}})

Result