我正在 mongodb 中进行更新,但不太熟悉如何在 mongodb 中完成工作。
Todo.update({}, {$set : { tags : []}}, false, true);
如何获取WriteResult
?我想知道 nMatched
和 nModified
值。
我尝试了以下方法,但不起作用。
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/