sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb uppdaterar inte när jag använder så här

{_where : what } behandlar _where som en String literal, vilket motsvarar:{"_where":what} . Därför får du inga uppdaterade resultat eftersom det inte finns något fält som _where . Du måste tilldela den på följande sätt för att få den att fungera.

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öser värdet i _where variabel.



  1. Använd operatorn AND - i sökmetoden

  2. Databas över 2GB i MongoDB

  3. MongoDB $toLower

  4. MongoDB Aggregation:Räknar distinkta fält