按照MongoDB C#驱动程序中的documentation和代码IMongoCollection.InsertMany
方法,不会返回任何内容。这很奇怪,因为DeleteMany
返回DeleteResult
信息。甚至InsertMany
作为Shell方法也返回带有已确认等的信息(请参见here)。
这是什么原因?最重要的问题:如何快速(不牺牲性能)确认InsertMany
已正确完成(Acknowledged == true
)?
答案 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方法,因此它什么也不返回。
从语义上讲,它是基于异常的:如果它完成时没有错误,那么您可以确保所有文档都已成功插入