MongoDB C#API的InsertMany未返回确认

时间:2019-01-28 08:09:15

标签: c# mongodb mongodb-.net-driver

按照MongoDB C#驱动程序中的documentation和代码IMongoCollection.InsertMany方法,不会返回任何内容。这很奇怪,因为DeleteMany返回DeleteResult信息。甚至InsertMany作为Shell方法也返回带有已确认等的信息(请参见here)。

这是什么原因?最重要的问题:如何快速(不牺牲性能)确认InsertMany已正确完成(Acknowledged == true)?

2 个答案:

答案 0 :(得分:1)

这是最不需要的,因为如果插入了记录,那么它将生成ID值并将其填充到传递给插入的对象中。要了解我的意思,请查看此答案MongoDb bulk operation get id

同样,您可以将此方法的异步版本与新驱动程序InsertManyAsync()一起使用,该驱动程序将返回Task,然后像往常一样,您可以检查Task.IsCompleted属性以了解其是否已完成成功与否。

答案 1 :(得分:1)

如果您查看API文档(http://mongodb.github.io/mongo-csharp-driver/2.7/apidocs/html/M_MongoDB_Driver_IMongoCollection_1_InsertMany_1.htm),似乎InsertMany是一个void方法,因此它什么也不返回。

从语义上讲,它是基于异常的:如果它完成时没有错误,那么您可以确保所有文档都已成功插入