猫鼬更新个人模型

时间:2015-07-17 20:49:59

标签: node.js mongodb mongoose

mongoose docs清楚地演示了如何在给定模型类的情况下更新模型,如下所示:

Tank.update({ _id: id }, { $set: { size: 'large' }}, callback);

如果我们确实需要在我们的应用程序中返回的文档,那么还有另一个更好的选择:

Tank.findByIdAndUpdate(id, { $set: { size: 'large' }}, function (err, tank) {
  if (err) return handleError(err);
  res.send(tank);
});

但是我找不到更新已经拥有的模型的语法,如下所示:

tank.update({ $set: { size: 'large' }}, callback);

这是否存在?

2 个答案:

答案 0 :(得分:3)

只是.save()

tank.size = "large"
tank.save(callback)

你的回调有三个参数:error, savedTank, count

Here it is in the docs

阵列可能稍微复杂一些,但是有很多问题要解决它们。

答案 1 :(得分:3)

支持您的问题中的以下示例:

tank.update({ $set: { size: 'large' }}, callback);

update的那种风格的文档是here,因为它是基础Document的一部分,而不是Model本身。

但是,请注意,您调用它的tank对象不会被更新,只会更新数据库中的实际文档。