db.collection.initializeUnorderedBulkOp()
提示
MongoDB 还提供了用于执行批量写入操作的 db.collection.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
批量操作时,应用程序不应依赖顺序。
mongosh
中的 Bulk()
操作以及驱动程序中的类似方法对群组中的操作数量不设限制。要了解如何对这些操作进行分组以执行批量操作,请在执行后调用 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();