如何以正确的方式更新记录?

时间:2012-05-11 14:57:00

标签: mongoose express

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

现在是时候更新数据库中的记录了,而且我已经碰壁了。

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

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

我要问的是:有什么方法可以将所有字段传递给更新方法,或者我可以 必须逐个指定它们(或遍历所有这些)?

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

2 个答案:

答案 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);
});