【问题标题】:MongoDB C# driver 2.0 InsertManyAsync vs BulkWriteAsyncMongoDB C# 驱动程序 2.0 InsertManyAsync 与 BulkWriteAsync
【发布时间】:2015-10-03 10:31:42
【问题描述】:

我必须使用新的 C# 2.0 驱动程序在 MongoDB 集合中插入许多文档。使用collection.InsertManyAsync(...)collection.BulkWriteAsync(...) 有什么不同吗? (尤其是关于性能)。

根据我从 MongoDB 文档中了解到的情况,带有文档数组的插入应该是后台的批量操作。对吗?

感谢您的帮助。

【问题讨论】:

  • 不确定答案,但这可能会有所帮助:通过 MongoDB API 描述 BulkWriteAsync - 执行多个写入操作。 InsertManyAsync - 插入许多文档。
  • 如果您所做的只是“插入”操作,那么实际上没有区别。不同之处在于“BulkWrite”有效地允许在同一批次中进行“插入”、“更新”和“删除”等混合操作。请注意,“在幕后”,无论如何,两者都使用相同的批量操作机制。所以你的解释是正确的。

标签: c# mongodb mongodb-.net-driver mongodb-csharp-2.0


【解决方案1】:

我在查看驱动程序源代码时找到了答案:InsertManyAsync 在内部使用BulkWriteAsync

所以使用InsertManyAsync 和写一样:

List<BsonDocument> documents = ...

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

显然,如果所有操作都是插入,则应使用InsertManyAsync

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-16
    • 2016-03-13
    • 2011-11-19
    • 2015-08-21
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多