Database

[{"voted":[{"voterId":5,voteRank:3},{"voterId":4,voteRank:1}]},]

Query

db.collection.update({},[{$set:{voted:{$ifNull:["$voted",[]]}}},{$set:{voted:{$concatArrays:[{$filter:{input:"$voted",cond:{$ne:["$$this.voterId",5]}}},[{$mergeObjects:[{$ifNull:[{$arrayElemAt:[{$filter:{input:"$voted",cond:{$eq:["$$this.voterId",5]}}},0]},{}]},{voteRank:2,voterId:5}]}]]}}}],{"multi":false,"upsert":false})

Result