Simran Kaur
Simran Kaur

Reputation: 1101

update record in mongodb

I have a file name Musicians.js that contains:

exports.update = function(req, res) {
  var id = req.params.id;
 console.log("ID-->" + id);  //I GET CORRECT ID HERE

  var updates = req.body;
//It does not update any records
      Musician.update({"_id":id}, req.body, 
        function (err, numberAffected) {
          if (err) return console.log(err);
          console.log('Updated %d musicians', numberAffected);  //gives 0 updated musicians
          return res.send(202);


      });
    };

In routes.js

app.put('/musicians/:id', musicians.update);

I call it like this:

$scope.updateTodo = function(id) {
        console.log("INSIDE UPDATE TO DO");
        console.log(id); 
        $scope.navMode = 'updateMusician';
        $scope.getOneTodo(id,function(data){
                var x=data;
                console.log("X" + x);
        $scope.formData.name= x.name;
        $scope.formData.band = x.band;
        $scope.formData.instrument = x.instrument;
        });
        $http.put('/musicians/' + id)
            .success(function(data) {
              $scope.todos = data;
                console.log("UPDATED||||||||||||||||||||||||||||||||||||||");
                      console.log(data);
            })
            .error(function(data) {
                console.log('Error: ' + data);
            });


    };

I get 0 responses updated for it.

What could be wrong? Why does it not update records even for matching id's?

How do I fix this?

Upvotes: 0

Views: 290

Answers (1)

Tomasz
Tomasz

Reputation: 106

Please try this:

exports.update = function(req, res) {
  var Musician = req.musician;

  Musician = _extend(Musician, req.body);

  Musician.save(function (err, numberAffected) {
      if (err) {
        console.log(err);
        return;
      }
      console.log('Updated %d musicians', numberAffected);
      res.jsonp(Musician);
    });
};

if not then try changing this:

var Musician = req.musician;

to this:

var Musician = req.Musician;

Let me know if this helped.

Upvotes: 1

Related Questions