我正在使用Express / NodeJs后端编写一个骨干应用程序,它依赖于mongoDb(通过mongoose)进行存储。
现在是时候更新数据库中的记录了,而且我已经碰壁了。
我写的代码是:https://gist.github.com/b90130f640cea75b0cbd
我理解阻止更新的错误是因为我传递了所有字段,包括不可修改的“_id”字段。
我要问的是:有什么方法可以将所有字段传递给更新方法,或者我可以 必须逐个指定它们(或遍历所有这些)?
提前感谢您的帮助,问候。
答案 0 :(得分:2)
您可以在将_id传递给model.update()
答案 1 :(得分:2)
您可以升级而不是更新。
new User(req.body).save();
无论如何,除了req.body将拥有正确的数据可能会导致安全问题,具体取决于您的模型(GitHub最近有这样的问题)。
我的建议是只从req.body获取你想要的东西并更新。
var updateData = {
name: req.body.name
};
User.update({_id: user._id},updateData, function(err,affected) {
console.log('affected rows %d', affected);
});