Database

[{"groups":[{"group_id":"A","total":-1,"items":[{"item_id":"a","val":1},{"item_id":"b","val":2}]},{"group_id":"B","total":-1,"items":[{"item_id":"c","val":3},{"item_id":"d","val":4}]}]}]

Query

db.collection.aggregate([{$set:{groups:{$map:{input:"$groups",in:{$mergeObjects:["$$this",{$cond:[{$eq:["$$this.group_id","A"]},{total:{$sum:"$$this.items.val"}},{}]}]}}}}}])

Result