2015-10-03 18 views
7

新しいC#2.0ドライバを使用して、MongoDBコレクションに多くのドキュメントを挿入する必要があります。いずれかのコレクションを使用しています.InsertManyAsync(...)collection.BulkWriteAsync(...)何か違いはありますか? (特にパフォーマンスについて)。MongoDB C#ドライバ2.0 InsertManyAsyncとBulkWriteAsync

私がMongoDBのドキュメントから理解しているところでは、一連のドキュメントを含む挿入物は、ボンネットの一括操作でなければなりません。あれは正しいですか?

ありがとうございました。

+0

答えが分かりませんが、これは役立ちます:MongoDB APIの説明BulkWriteAsync - 複数の書き込み操作を実行します。 InsertManyAsync - 多くのドキュメントを挿入します。 – Ofir

+1

あなたがしていることが「挿入」操作であれば、実質的に違いはありません。違いのポイントは "BulkWrite"で、同じバッチで "insert"、 "update"、 "remove"などの混合操作を効果的に許可します。 "under the hood"では、どちらも同じバルク操作メカニズムを使用しています。あなたの解釈は正しい。 –

答えて

9

私はドライバのソースコードを見て答えた:すべての操作が挿入されている場合、InsertManyAsyncがあるべき、明らかに

List<BsonDocument> documents = ... 

collection.BulkWriteAsync(documents.Select(d => new InsertOneModel<BsonDocument>(d))); 

:InsertManyAsyncはそう、それは書き込みと同じですInsertManyAsyncを使用して、内部的にBulkWriteAsyncを使用していますが中古。

関連する問題