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);
这是否存在?
答案 0 :(得分:3)
只是.save()
:
tank.size = "large"
tank.save(callback)
你的回调有三个参数:error, savedTank, count
:
阵列可能稍微复杂一些,但是有很多问题要解决它们。
答案 1 :(得分:3)
支持您的问题中的以下示例:
tank.update({ $set: { size: 'large' }}, callback);
update
的那种风格的文档是here,因为它是基础Document
的一部分,而不是Model
本身。
但是,请注意,您调用它的tank
对象不会被更新,只会更新数据库中的实际文档。