对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

db. 集合.initializeOrderedBulkOp()(mongosh方法)

提示

MongoDB 还提供了 Mongo.bulkWrite() 方法用于执行批量写入操作。

db.collection.initializeOrderedBulkOp()

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是 特定于语言的驱动程序(例如 Node.js)的文档。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

为集合初始化并返回新的 Bulk() 操作构建器。该构建者可以构造 MongoDB 批量执行的写入操作的有序列表。

返回:

新的Bulk()操作构建器对象。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

对于有序操作列表,MongoDB 会按顺序执行列表中的写入操作。

执行 ordered 操作列表时,MongoDB 按 operation type 和连续性对操作进行分组;也就是说,相同类型的连续操作会被分为一组。例如,如果序列表有两个插入操作,后跟一个更新操作,然后是另一个插入操作,则 MongoDB 将这些操作分为三个单独的组:第一组包含两个插入操作,第二组包含更新操作,第三组包含最后一次插入操作。这种行为在未来版本中可能会有所更改。

mongosh 中的 Bulk() 操作以及驱动程序中的类似方法对群组中的操作数量不设限制。要了解如何对这些操作进行分组以执行批量操作,请在执行调用 Bulk.getOperations()

在分片集合上执行操作的 ordered 列表通常比执行 unordered 列表慢,因为对于有序列表,每个操作都必须等待前一个操作完成。

如果在处理其中的一个写入操作期间出现错误,MongoDB 将返回而不处理列表中的任何其余写入操作。

Bulk()users以下示例在collection上初始化 操作构建器,添加一系列写入操作,并执行这些操作:

var bulk = db.users.initializeOrderedBulkOp();
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.find( { status: "D" } ).delete();
bulk.find( { status: "P" } ).update( { $set: { comment: "Pending" } } );
bulk.execute();