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

JuJ*_*oDi 7 mongoose mongodb node.js

这看起来很难记录.文档示例刚刚callback传递给更新.有一个重定向到Model.update 这里的链接,示例显示了回调的参数(err, numberAffected, raw).

Document#update回调是否传递相同的参数?我希望得到更新的文件.我最初的搜索是基于如何在mongo db中更新文档,但即使答案也没有解释甚至列出回调的参数.

Joh*_*yHK 12

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

如果您想要更新的文档,那么您可以使用以下findAndModify方法之一findOneAndUpdate:

MyModel.findOneAndUpdate({_id: 1}, {$inc: {count: 1}}, {new: true}, function (err, doc) {
    // doc contains the modified document
});
Run Code Online (Sandbox Code Playgroud)

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