对于mongoose Document#update,所有可能的回调参数是什么?

时间:2014-04-19 17:11:10

标签: node.js mongodb mongoose

这似乎记录得很差。documentation示例只传递callback更新。有一个重定向到Model.update here的链接,示例显示回调的参数为(err, numberAffected, raw)

Document#update回调是否传递相同的参数?我希望得到更新的文件。我最初的搜索基于how to update a document in mongo db,但即使答案也没有解释甚至列出回调的参数。

2 个答案:

答案 0 :(得分:12)

由于某种原因,回调参数的文档记录很差,困扰了许多node.js库。但MongoDB的update命令(无论驱动程序如何)都无法访问更新的文档,因此您可以确定它没有提供给回调。

如果您需要更新的文档,则可以使用findAndModify之类的MyModel.findOneAndUpdate({_id: 1}, {$inc: {count: 1}}, {new: true}, function (err, doc) { // doc contains the modified document }); 方法之一:

{new: true}

从Mongoose 4.0开始,您需要在调用中提供false选项以获取更新的文档,因为现在默认为{{1}},它将返回原始文档。

答案 1 :(得分:0)

num-affected实际上是原始mongoDB输出和对象。它看起来像这样:

{ok: 1, nModified: 0, n: 1}

不幸的是我不知道nModified属性是什么意思。 'n'是旧的(4.0之前)受影响的行数