Database

[{name:"my name",someArray:[{rate:10},{rate:9},{rate:20}]},{name:"my name B",someArray:[{rate:10},{rate:9},{rate:20}]}]

Query

db.collection.update({name:"my name"},[{$set:{lastIndex:{$subtract:[{$size:"$someArray"},1]}}},{$set:{lastIndex:"$$REMOVE",someArray:{$reduce:{input:"$someArray",initialValue:[],in:{$concatArrays:["$$value",[{$cond:[{$eq:[{$size:"$$value"},"$lastIndex"]},{$mergeObjects:["$$this",{rate:50}]},"$$this"]}]]}}}}}])

Result