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

removecallback的第二个参数是一个包含已删除文档数量的数字。

 MyModel.remove({_id: myId}, function(err, numberRemoved) { if(numberRemoved === 0) next(new Error("ID was not found.")); } 

Mongoose 4.x,MongoDB 3.x

传递给removecallback函数的第二个参数现在是一个带有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."); });