Database
[{"output_data":{"alert_type":"UAlert","overallImpact":{"margin":0.1,"workingCapital":3.33}}},{"output_data":{"alert_type":"CAlert","overallImpact":{"margin":0.1,"workingCapital":3.33}}},{"output_data":{"alert_type":"UAlert","overallImpact":{"margin":0.1,"workingCapital":3.33}}}]
Query
db.collection.aggregate([{$facet:{data:[{$group:{"_id":"$output_data.alert_type","alert_type":{"$first":"$output_data.alert_type"},"margin":{"$sum":"$output_data.overallImpact.margin"},"workingCapital":{"$sum":"$output_data.overallImpact.workingCapital"},}},{$project:{"_id":0}}],"alert_types":[{$group:{_id:null,"names":{"$addToSet":"$output_data.alert_type"}}}]}},{$project:{data:1,alert_types:"$alert_types.names"}}])