Database

[{"_id":1,"vector":[49,50,4000],/**...*/}]

Query

db.collection.update({_id:1},[{$set:{vector_updated:{$reduce:{input:"$vector",initialValue:[],in:{$concatArrays:["$$value",[{$add:["$$this",{$arrayElemAt:[[-50,0,-2000],{$size:"$$value"}]}]}]]}}}}},{$set:{vector:{$cond:{if:{$lt:[{$min:"$vector_updated"},0]},then:"$vector",else:"$vector_updated"}}}},{$unset:"vector_updated"}])

Result