Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.collection.initializeOrderedBulkOp()

在此页面上

  • 定义
  • 兼容性
  • 行为
  • 示例

提示

MongoDB 还提供了用于执行批量写入操作的 db.collection.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();

后退

批量操作