提示
MongoDB 还提供了 Mongo.bulkWrite() 方法用于执行批量写入操作。
定义
db.collection.initializeUnorderedBulkOp()重要
mongosh 方法
本页介绍了
mongosh方法。这不是特定于语言的驾驶员(例如 Node.js)的文档。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
为集合初始化并返回新的
Bulk()操作构建器。该构建器可以构造 MongoDB 批量执行的写入操作的无序列表。
兼容性
此命令可用于以下环境中托管的部署:
- MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
行为
操作顺序
对于无序操作列表,MongoDB 可以按任意顺序并行执行列表中的写入操作。如果操作顺序重要,请改用 db.collection.initializeOrderedBulkOp()。
执行操作
执行unordered 操作列表时, MongoDB会对操作进行分组。对于无序批量操作,可以对列表中的操作重新排序以提高性能。因此,应用程序在执行unordered 批量操作时不应依赖顺序。
Bulk()中的mongosh 操作和驱动程序中的类似方法对群组中的操作数量没有限制。要查看如何对操作进行分组以执行批量操作,请在执行后调用Bulk.getOperations() 。
提示
Error Handling
如果在处理其中一个写入操作期间出现错误,MongoDB 将继续处理列表中剩余的写入操作。
例子
以下示例初始化 Bulk() 操作构建器,并添加一系列插入操作以添加多个文档:
var bulk = db.users.initializeUnorderedBulkOp(); bulk.insert( { user: "abc123", status: "A", points: 0 } ); bulk.insert( { user: "ijk123", status: "A", points: 0 } ); bulk.insert( { user: "mop123", status: "P", points: 0 } ); bulk.execute();