Database

[{_id:"someIdblahbla",users:[{_id:"id1",name:"name1"},{_id:"id2",name:"name2"},{_id:"id3",name:"name3"}]}]

Query

db.collection.update({_id:"someIdblahbla"},[{$set:{users:{$concatArrays:[{$map:{input:"$users",as:"u",in:{$cond:[{$in:["$$u._id",["id1","id2","id4"]]},{$mergeObjects:["$$u",{$arrayElemAt:[{$filter:{input:[{_id:"id1",name:"newName1"},{_id:"id2","name":"newName2",family:"newFamily2"},{_id:"id4","name":"newName4",family:"newFamily4"}],cond:{$eq:["$$this._id","$$u._id"]}}},0]}]},"$$u"]}}},{$filter:{input:[{_id:"id1",name:"newName1"},{_id:"id2","name":"newName2",family:"newFamily2"},{_id:"id4","name":"newName4",family:"newFamily4"}],cond:{$not:{$in:["$$this._id","$users._id"]}}}}]}}}])

Result