Database

[{_id:11,marksObtained:[{physics:10},{chemistry:12},{maths:11},{biology:9},{social:9}],name:"Someone"}]

Query

db.collection.update({_id:11},[{$set:{marksObtained:{$map:{input:"$marksObtained",in:{$first:{$objectToArray:"$$this"}}}},dataToUpdate:{$map:{input:[{chemistry:13},{zoology:12}],in:{$first:{$objectToArray:"$$this"}}}}}},{$set:{marksObtained:{$concatArrays:[{$filter:{input:"$marksObtained",cond:{$not:{$in:["$$this.k","$dataToUpdate.k"]}}}},"$dataToUpdate"]},dataToUpdate:"$$REMOVE"}},{$set:{marksObtained:{$map:{input:"$marksObtained",in:["$$this"]}}}},{$set:{marksObtained:{$map:{input:"$marksObtained",in:{"$arrayToObject":"$$this"}}}}}])

Result