我正在尝试学习使用mongoose进行CRUD操作。我只缺失了更新部分,我做错了什么?
我的模型:
var mongoose = require('mongoose');
var testSchema = new mongoose.Schema({
name: String,
number: Number
});
mongoose.model('TestData', testSchema);
我的路由
// get the models
var Test = mongoose.model('TestData');
如果链接中的url参数为
'test'
,它将查找数据库中是否存在对象,否则返回错误。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();
});
});
按ID获取
/* GET testdata/:id */
router.get('/testingdata/:test', function(req, res, next){
req.test.populate('test', function(err, test){
res.json(test);
});
});
删除
/* DELETE testdata/:id */
router.delete('/testingdata/:test', function(req, res, next){
req.test.remove('test', function(err, test){
console.log('removed');
res.json(test);
});
});
我的问题
现在我遇到一个问题,如果我尝试升级一个东西,我似乎缺少了一些东西。
/* PUT testdata/:id */
router.put('/testingdata/:test', function(req, res, next){
req.test.update('test',{$set: {name: 'new data'}} , function(err, test){
res.json(test);
});
});
我没有收到任何错误提示,但它也没有更新任何内容。它甚至返回了一些数据。
{
"ok": 0,
"n": 0,
"nModified": 0
}