Database

[{user:"a",calories:12,fat:20,meals:[{calories:5,fat:3,name:"a"},{calories:6,fat:4,name:"b"}]}]

Query

db.collection.update({user:"a","meals.name":"a"},[{$addFields:{reducedValues:{$reduce:{input:"$meals",initialValue:{calories:0,fat:0},in:{calories:{$add:["$$value.calories",{$cond:[{$eq:["$$this.name","a"]},"$$this.calories",0]}]},fat:{$add:["$$value.fat",{$cond:[{$eq:["$$this.name","a"]},"$$this.fat",0]}]}}}}}},{$set:{"calories":{$subtract:["$calories","$reducedValues.calories"]},"fat":{$subtract:["$fat","$reducedValues.fat"]},}}])

Result