Database
[{"_id":ObjectId("5a934e000102030405000000"),"curveId":13,"values":[1,2,12,7,8,9]}]
Query
db.collection.update({curveId:12},[{$set:{values:{$cond:{if:{$isArray:"$values"},then:{$let:{vars:{paddedValues:{$concatArrays:["$values",{$map:{input:{$range:[0,{$subtract:[8,{$size:"$values"}]}]},in:null}}]}},in:{$map:{input:{$range:[0,{$size:"$$paddedValues"}]},as:"idx",in:{$cond:[{$eq:["$$idx",7]},"new_value",{$arrayElemAt:["$$paddedValues","$$idx"]}]}}}}},else:{$map:{input:{$range:[0,8]},in:{$cond:[{$eq:["$$this",7]},"new_value",null]}}}}}}}],{upsert:true})