MongoDB InsertMany与BulkWrite的区别

32

我正在使用MongoDB来存储日志数据。我的目标是零丢失日志记录。现在我正在使用InsertManyAsync来写入多个日志数据。但在MongoDB中也有像BulkWriteAsync这样的方法。

InsertManyBulkWrite在本地写入和网络写入时性能上有什么区别?

3个回答

52

好的,这是两个问题:

InsertMany与BulkWrite

使用BulkWrite可以在单个连接到MongoDB时执行多个操作。内部上InsertMany使用BulkWrite,因此没有区别,只是为了方便。

这个问题已经解决了。

同步 vs 异步

当您执行同步操作时,您的应用程序将等待MongoDB完成工作。通过异步操作,您可以同时执行许多操作。服务器和客户端都支持。

这也已经解决了。


2

BulkWrite支持多种写入操作(插入、删除和更新),而insertMany只能插入文档。


在我看来,这应该是最佳答案。 - Abdel Shokair

-2

BulkWriteAsync 在内部使用 InsertManyAsync 来处理插入操作。唯一的区别在于 BulkWriteAsync 允许你在一个地方执行不同的操作(插入、更新、删除)。然而,如果你要在大量文档中选择 BulkWriteAsync 和 InsertManyAsync 来插入,建议直接使用 InsertManyAsync。


8
FYI,"BulkWriteAsync在幕后使用InsertManyAsync"实际上是相反的,是InsertMany使用了BulkWrite。 - Binary Worrier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接