MongoDB 成功插入是否保证填充 ID?

Does MongoDB successful insert guarantee populated ID's?

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

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

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

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

此外,由于 ID 是由驱动程序本身生成的 (客户端)在调用 MongoDB 服务器之前,有一个很好的变化,即 ID 设置均匀如果操作出现异常(例如服务器宕机)。

ID 是通过 MongoCollectionImpl.AssignId 方法分配的,可以在 here.

中找到