我们使用MongoDB C#驱动程序使用InsertManyAsync
插入记录集合。
我们目前有代码在InsertManyAsync
返回后迭代整个集合,确认已填充了ID。我希望驱动程序已经解决了这个问题,但是我没有找到这样说的文档。
如果InsertManyAsync
成功返回(即不抛出异常),驱动程序是否保证填充所提供集合的ID?
答案 0 :(得分:1)
是。如果操作完成且没有错误,则可以保证文档具有ID(在操作之前由您创建或由操作本身中的驱动程序创建)。
此外,由于 ID是由驱动程序本身(客户端)生成的,因此在调用MongoDB服务器之前,即使操作中存在异常,也会对ID进行设置进行良好更改(例如,服务器已关闭。)
ID由MongoCollectionImpl.AssignId
方法分配here。