MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb wird nicht aktualisiert, wenn ich es so verwende

{_where : what } behandelt _where als String Literal, was äquivalent ist zu:{"_where":what} . Daher erhalten Sie keine aktualisierten Ergebnisse, da es kein Feld wie _where gibt . Sie müssen es wie folgt zuweisen, damit es funktioniert.

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; löst den Wert in _where auf Variable.