javascript - 如何在mongodb中获取更新查询WriteResult

标签 javascript mongodb updates

我正在 mongodb 中进行更新,但不太熟悉如何在 mongodb 中完成工作。

Todo.update({}, {$set : { tags : []}}, false, true);

如何获取WriteResult?我想知道 nMatchednModified 值。

我尝试了以下方法,但不起作用。

var updateResult = Todo.update({}, {$set : { tags : ['test']}}, false, true);
(function(updateResult){
    console.log('Size of match: ' + updateResult.nMatched);
    console.log('Size of modified: ' + updateResult.nModified);
})();

最佳答案

首先,了解 Todo.update 是一个异步函数,它将其结果传递给回调函数而不是返回它,这一点很重要。

但是 Mongoose update函数获取参数的方式也与 shell 不同。

所以你的代码应该看起来像这样:

Todo.update({}, 
            {$set: {tags: []}}, 
            {upsert: false, multi: true}, 
            function(err, numberAffected, rawResponse) {
    console.log('Number of docs modified: ' + numberAffected);
});

回调的 rawResponse 参数包含来自 Mongo 的完整响应,但这实际上仅在使用 upsert 时有用。

关于javascript - 如何在mongodb中获取更新查询WriteResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28249909/

相关文章:

javascript - 如何在html中读写ini文件

javascript - 事件 - 为什么上下文以两种不同的方式存储?

javascript - 根据 AngularJS 属性选择 Controller

Javascript 对象属性和函数

mongodb - 如何在mongodb中创建关系?

php - 如何在MYSQL数据库中创建事件?

node.js - 通过 Postman Nodejs 使用承载授权

MongoDB 与 CouchDB...以及任何其他 "major players"

php - 使用 PHP 更新组合框的数据

sdk - Microsoft.AspNetCore.App 2.1.1升级 "Blocked by project"