Database
[{"_id":ObjectId("5a934e000102030405000000"),"curveId":12,"values":[1,2,12,7,8,9]}]
Query
db.collection.update({curveId:12},[{$set:{values:{$cond:{if:{$isArray:"$values"},then:{$map:{input:"$values",in:{$cond:[{$eq:[{$indexOfArray:["$values","$$this"]},3]},"new_value","$$this"]}}},else:{$map:{input:{$range:[0,4]},in:{$cond:[{$eq:["$$this",3]},"new_value",null]}}}}}}}],{upsert:true})