我正在编写一个带有 Express/NodeJs 后端的骨干应用程序,它依赖于 mongoDb(通过 mongoose)进行存储。
是时候更新数据库中的记录了,我碰壁了。
我写的代码是:https ://gist.github.com/b90130f640cea75b0cbd
我了解阻止更新的错误是由于我传递了所有字段,包括不可修改的“_id”字段。
我要问的是:有什么方法可以将所有字段传递给更新方法,还是必须一一指定(或遍历所有字段)?
提前感谢您的帮助,问候。
我正在编写一个带有 Express/NodeJs 后端的骨干应用程序,它依赖于 mongoDb(通过 mongoose)进行存储。
是时候更新数据库中的记录了,我碰壁了。
我写的代码是:https ://gist.github.com/b90130f640cea75b0cbd
我了解阻止更新的错误是由于我传递了所有字段,包括不可修改的“_id”字段。
我要问的是:有什么方法可以将所有字段传递给更新方法,还是必须一一指定(或遍历所有字段)?
提前感谢您的帮助,问候。
您可以在将 _id 传递给之前将其删除model.update()
您可以只更新插入而不是更新。
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);
});