Database
[{"_id":ObjectId("5e82661d164941779c2380ca"),"name":"something","values":[{"id":1,"val":2},{"id":1,"val":2},{"id":1,"val":3},{"id":2,"val":2},{"id":3,"val":2},{"id":1,"val":4}]}]
Query
db.collection.aggregate([{$addFields:{values:{$reduce:{input:"$values",initialValue:[],in:{$concatArrays:["$$value",{$cond:[{$in:["$$this.id","$$value.id"]},[{"$sum":"$$value.val"}],["$$this"]]}]}}}}}])