MongoDB成功插入保证填充ID吗?

时间:2015-06-22 15:14:47

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

我们使用MongoDB C#驱动程序使用InsertManyAsync插入记录集合。

我们目前有代码在InsertManyAsync返回后迭代整个集合,确认已填充了ID。我希望驱动程序已经解决了这个问题,但是我没有找到这样说的文档。

如果InsertManyAsync成功返回(即不抛出异常),驱动程序是否保证填充所提供集合的ID?

1 个答案:

答案 0 :(得分:1)

是。如果操作完成且没有错误,则可以保证文档具有ID(在操作之前由您创建或由操作本身中的驱动程序创建)。

此外,由于 ID是由驱动程序本身(客户端)生成的,因此在调用MongoDB服务器之前,即使操作中存在异常,也会对ID进行设置进行良好更改(例如,服务器已关闭。)

ID由MongoCollectionImpl.AssignId方法分配here