We are using the MongoDB C# driver to insert a collection of records using
We currently have code that iterates the entire collection after
InsertManyAsync returns, confirming that the ID's are populated. I would expect that the driver takes care of this already, but I have not found documentation that says so.
InsertManyAsync returns successfully (i.e., doesn't throw an exception), does the driver guarantee that the ID's of the provided collection are populated?
Best How To :
Yes. If the operation completed without errors you are guaranteed that the documents have an ID (either created by you before the operation or by the driver in the operation itself).
Moreover, since the IDs are generated by the driver itself (client-side) before calling the MongoDB server there's a good change that the IDs are set even if there was an exception in the operation (e.g. the server was down).
The ID's are assigned by the
MongoCollectionImpl.AssignId method that can be found here.