2015-06-22 43 views
1

我們使用MongoDB C#驅動程序使用InsertManyAsync插入一組記錄。MongoDB是否成功插入保證填充的ID?

我們目前有代碼在InsertManyAsync返回後迭代整個集合,確認ID已填充。我希望驅動程序已經處理這個問題,但我還沒有找到說明的文檔。

如果InsertManyAsync成功返回(即不會拋出異常),驅動程序是否保證提供的集合的ID被填充?

回答

1

是的。如果操作完成沒有錯誤,則保證文檔具有ID(由操作人員在操作之前或由操作人員在操作本身中創建)。

此外,由於ID是由驅動程序本身(客戶端)在調用MongoDB服務器之前生成的,所以即使在操作中存在異常(例如服務器是下)。

該ID由MongoCollectionImpl.AssignId方法分配,可以找到here