I am trying to learn CRUD with mongoose. I just skip the update part. What am I doing wrong?
MY MODEL
var mongoose = require('mongoose');
var testSchema = new mongoose.Schema({
name: String,
number: Number
});
mongoose.model('TestData', testSchema);
MY ROUTES
var Test = mongoose.model('TestData');
PARAM
If the link has a 'test'url parameter, it will look if the object exists in the database, otherwise return errors.
router.param('test', function(req, res, next, id){
var query = Test.findById(id);
query.exec(function(err, test){
if(err){ return next(err); }
if(!test){ return next(new Error('can\'t find test')); }
req.test = test;
return next();
});
});
GET BY ID
router.get('/testingdata/:test', function(req, res, next){
req.test.populate('test', function(err, test){
res.json(test);
});
});
DELETE
router.delete('/testingdata/:test', function(req, res, next){
req.test.remove('test', function(err, test){
console.log('removed');
res.json(test);
});
});
MY PROBLEM
Now here is my problem, if I try to update it, I just missed something.
router.put('/testingdata/:test', function(req, res, next){
req.test.update('test',{$set: {name: 'new data'}} , function(err, test){
res.json(test);
});
});
I am not getting any errors, but not updating anything. It even returns some data.
{
"ok": 0,
"n": 0,
"nModified": 0
}