Database

[{cart:[{"id":1.0,"quantity":1.0},{"id":2.0,"quantity":3.0}]}]

Query

db.collection.aggregate([{$addFields:{cart:{$reduce:{input:"$cart",initialValue:[],in:{$cond:[{$and:[{$eq:["$$this.id",1]},{$gt:["$$this.quantity",1]}]},{$concatArrays:["$$value",[{$mergeObjects:["$$this",{quantity:{$add:["$$this.quantity",-1]}}]}]]},{$cond:[{$eq:["$$this.id",1]},"$$value",{$concatArrays:["$$value",["$$this"]]}]}]}}}}}])

Result