簡體   English   中英

InsertManyAsync vs BulkWriteAsync:是否在一個事務中,通過 MongoDB C# 驅動程序允許的最大行數

[英]InsertManyAsync vs BulkWriteAsync: in one transaction or not, max rows allowed via MongoDB C# driver

我通過下面的 NuGet 對 InsertManyAsync 與 BulkWriteAsync 有疑問:

https://www.nuget.org/packages/MongoDB.Driver/2.12.3?_src=template

我想導出大約 20 MB 的 300,000 行數據,將它們轉換為 JSON 並將它們導入 Mongo Altas。

我的問題:

1 哪個操作InsertManyAsyncBulkWriteAsync是事務性的,例如全有還是全無?

2 每個操作允許的最大行數或大小是多少?

下面或其他地方的鏈接沒有答案:

MongoDB C# 驅動程序 2.0 InsertManyAsync 與 BulkWriteAsync

https://mongodb.github.io/mongo-csharp-driver/2.12/apidocs/html/M_MongoDB_Driver_IMongoCollection_1_BulkWrite.htm

https://mongodb.github.io/mongo-csharp-driver/2.12/apidocs/html/Overload_MongoDB_Driver_IMongoCollection_1_InsertManyAsync.htm

InsertManyAsyncBulkWriteAsync之間沒有區別,除了 BulkWriteAsync 不僅可以與插入一起使用。 換句話說, InsertManyAsync在內部調用BulkWriteAsync

該操作是一項事務性操作,例如全部還是全部?

交易 此外,請參閱此處ordered / unordered選項。

允許的最大行數或大小是多少?

我認為除了對 16 MB 的文檔大小的限制之外,沒有任何限制。 請注意,批量項目可以在發送到服務器之前合並為單個文檔(總和不應大於 16 MB),或者它們應該一個一個單獨發送。 此邏輯取決於您是否使用isOrdered選項以及批次中的所有項目是否具有相同的批量類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM