mongoose:计数删除的文件
我如何检查一个Mongoose模型的remove方法是否真的删除了某些东西?
MyModel.remove({_id: myId}, function(err, entry) { if(entry == null) next(new Error("ID was not found.")); // this doesn't work }
我可以检查有多less文件被删除?
在Mongo-Documentation kristina1中写下评论:
如果在删除后调用db.runCommand({getLastError:1}),“n”字段将告诉您有多less文档被删除。
但我不知道如何用mongoose做这个。
Mongoose <4,MongoDB <3
remove
callback的第二个参数是一个包含已删除文档数量的数字。
MyModel.remove({_id: myId}, function(err, numberRemoved) { if(numberRemoved === 0) next(new Error("ID was not found.")); }
Mongoose 4.x,MongoDB 3.x
传递给remove
callback函数的第二个参数现在是一个带有result.n
字段的对象, result.n
指示已删除文档的计数:
MyModel.remove({_id: myId}, function(err, obj) { if(obj.result.n === 0) next(new Error("ID was not found.")); }
我用最新版本的mongoose试了一下,但是没有成功。 作为第二个参数返回作为操作结果,不只是计数。 使用如下,它的工作:
Model.remove({ myId: req.myId }, function(err, removeResult) { if (err) { console.log(err); } if (removeResult.result.n == 0) { console.log("Record not found"); } Console.log("Deleted successfully."); });