MongoDB C# driver 2.0 InsertManyAsync vs BulkWriteAsync

Stefano Castriotta picture Stefano Castriotta · Oct 3, 2015 · Viewed 8.3k times · Source

I have to insert many documents in a MongoDB collection, using the new C# 2.0 driver. Is using either collection.InsertManyAsync(...) collection.BulkWriteAsync(...) making any difference? (particularly about performance).

From what i understand from MongoDB documentation, an insert with an array of documents should be a bulk operation under the hood. Is that correct?

Thanks for your help.

Answer

Stefano Castriotta picture Stefano Castriotta · Oct 3, 2015

I found the answer looking at the driver source code: the InsertManyAsync uses internally the BulkWriteAsync, so using InsertManyAsync it's the same as writing:

List<BsonDocument> documents = ...

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

Obviously, if all operations are Inserts, the InsertManyAsync should be used.