Database

[{"id":"1234657980","company":"samsung","models":[{"name":"A1","processor":"P1","price":10000},{"name":"A2","processor":"P2","price":20000},{"name":"A3","processor":"P3","price":30000}]}]

Query

db.collection.update({"id":"1234657980"},[{$set:{models:{$let:{vars:{newArr:[{"name":"A1","processor":"new P1","price":15000},{"name":"A2","processor":"new P2","price":25000},{"name":"A4","processor":"P4","price":40000}]},in:{$concatArrays:[{$reduce:{input:"$models",initialValue:[],in:{$concatArrays:["$$value",[{$cond:[{$in:["$$this.name","$$newArr.name"]},{$first:{$filter:{input:"$$newArr",as:"newItem",cond:{$eq:["$$this.name","$$newItem.name"]}}}},"$$this"]}]]}}},{$filter:{input:"$$newArr",cond:{$not:{$in:["$$this.name","$models.name"]}}}}]}}}}}])

Result