MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongodb não atualiza quando eu uso assim


{_where : what } trata _where como uma String literal, que é equivalente a:{"_where":what} . Portanto, você não obtém resultados atualizados, pois não há campo como _where . Você precisa atribuí-lo da maneira abaixo para fazê-lo funcionar.
exports.updateUsers = function ( user_id, where, what, pass )  {
    var _where = 'settings.'+where; //when I use it doesn't update
    var update = {};
    update[_where] = what;
    user.findOneAndUpdate(
          {'user_id' : user_id}, 
          update).exec(function(e,d){
            pass("ok")
          })
};

update[_where] = what; resolve o valor no _where variável.