4

我正在编写一个带有 Express/NodeJs 后端的骨干应用程序,它依赖于 mongoDb(通过 mongoose)进行存储。

是时候更新数据库中的记录了,我碰壁了。

我写的代码是:https ://gist.github.com/b90130f640cea75b0cbd

我了解阻止更新的错误是由于我传递了所有字段,包括不可修改的“_id”字段。

我要问的是:有什么方法可以将所有字段传递给更新方法,还是必须一一指定(或遍历所有字段)?

提前感谢您的帮助,问候。

4

2 回答 2

2

您可以在将 _id 传递给之前将其删除model.update()

于 2012-05-11T23:47:19.550 回答
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);
});
于 2012-05-12T00:04:58.653 回答