如何在mongodb2.4上使用findByIdAndUpdate?
How to use findByIdAndUpdate on mongodb2.4?
backbone 客户端更新模型 属性:
ocase.save({ currentStep : theStep },callback);
服务器端猫鼬代码:
OCase.findByIdAndUpdate(req.params.id,
req.body, callback);
在mongodb2.6上运行正常,在mongodb2.4上运行不正常,报错:
update err:MongoError: exception: Mod on _id not allowed
所以我尝试删除“_id”,只保存其他属性:
OCase.findByIdAndUpdate(req.params.id,
{subject : req.body.subject,
description : req.body.description
},callback);
然后我得到了另一个错误:
update err:TypeError: Cannot read property '_id' of undefined
我真的很迷茫,我现在该怎么办?
最后只好先查询(findById)文档,然后调用"save"方法更新
OCase.findById(req.params.id,
function(err,ocase){
ocase.set(req.body);
ocase.save(function(err,ocase){
res.send(ocase);
});
});
通过添加$set
运算符解决:
OCase.findByIdAndUpdate(req.params.id, {
$set: {
subject: req.body.subject,
description: req.body.description,
currentStep: req.body.currentStep
}
}, callback);
backbone 客户端更新模型 属性:
ocase.save({ currentStep : theStep },callback);
服务器端猫鼬代码:
OCase.findByIdAndUpdate(req.params.id,
req.body, callback);
在mongodb2.6上运行正常,在mongodb2.4上运行不正常,报错:
update err:MongoError: exception: Mod on _id not allowed
所以我尝试删除“_id”,只保存其他属性:
OCase.findByIdAndUpdate(req.params.id,
{subject : req.body.subject,
description : req.body.description
},callback);
然后我得到了另一个错误:
update err:TypeError: Cannot read property '_id' of undefined
我真的很迷茫,我现在该怎么办?
最后只好先查询(findById)文档,然后调用"save"方法更新
OCase.findById(req.params.id,
function(err,ocase){
ocase.set(req.body);
ocase.save(function(err,ocase){
res.send(ocase);
});
});
通过添加$set
运算符解决:
OCase.findByIdAndUpdate(req.params.id, {
$set: {
subject: req.body.subject,
description: req.body.description,
currentStep: req.body.currentStep
}
}, callback);