Search code examples
c#mongodbmongodb-.net-drivermongodb-csharp-2.0

MongoDB C# driver 2.0 InsertManyAsync vs BulkWriteAsync


I have to insert many documents in a MongoDB collection, using the new C# 2.0 driver. Is using either collection.InsertManyAsync(...) or 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.


Solution

  • 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.