Database
[{values:[{_id:"x",value:1},{_id:"y",value:2},{_id:"z",value:3}]}]
Query
db.collection.aggregate([{$addFields:{stats:{$reduce:{input:"$values",initialValue:{x:{value:0,},y:{value:0,},z:{value:0,},total:0},in:{$switch:{branches:[{case:{$eq:["$$this._id","x"]},then:{$mergeObjects:["$$value",{"x":{"value":"$$this.value"},total:{"$add":["$$value.total","$$this.value"]}}]}},{case:{$eq:["$$this._id","y"]},then:{$mergeObjects:["$$value",{"y":{"value":"$$this.value"},total:{"$add":["$$value.total","$$this.value"]}}]}},{case:{$eq:["$$this._id","z"]},then:{$mergeObjects:["$$value",{"z":{"value":"$$this.value"},total:{"$add":["$$value.total","$$this.value"]}}]}}],default:"$$value"}}}}}}])