MongoDB 批量操作方法

17 Mar 2025 | 5 分钟阅读

MongoDB 批量方法用于执行批量操作,例如批量写入和批量删除。

#1. db.collection.initializeOrderBulkOp()

initializeOrderBulkOp() 为集合提供了一个新的 Bulk() 操作构建器。它构建了一个有序的写操作列表,MongoDB 以批量方式运行这些操作。

以下内容在用户集合上初始化了一个 Bulk() 操作构建器,添加了一系列写操作,并执行了这些操作

#2. db.collection.initializeUnorderedBulkOp()

该方法启动并为集合提供了一个新的 Bulk() 操作构建器。它构建了一个无序的写操作列表,MongoDB 以批量方式运行这些操作。

例如

以下内容初始化了一个 Bulk() 操作构建器,并添加了一系列插入操作以添加多个文档

#3. Bulk() 方法

Bulk 方法可用于创建要在一个集合中批量执行的写操作列表。要将构建器对象化,请使用以下任一方法

Bulk() 构建器具有以下方法

Bulk.insert()它可用于在操作列表中添加插入操作。
Bulk.find()它为删除或更新操作指定查询条件。
Bulk.find.removeOne()它将删除操作添加到单个文档的操作列表中。
Bulk.find.remove()它将删除操作添加到多个文档的操作列表中。
Bulk.find.replaceOne()它将文档替换操作添加到多个操作中。
Bulk.find.updateOne()它将单个文档更新操作添加到操作数组中。
Bulk.find.update()它将多重更新操作添加到操作数组中。
Bulk.find.upsert()它可用于指定更新操作为真。
Bulk.execute()它以批量方式执行操作数组。
Bulk.getOperations()它给出了在 Bulk() 操作对象中执行的写操作数组。
Bulk.tojson()它返回一个 JSON 文档,该文档具有 Bulk() 操作对象中的操作和批次数。
Bulk.toString()它以字符串形式给出 Bulk.tojson() 结果。

#4. Bulk.execute() 方法

它运行由 Bulk() 方法构建器构建的操作列表。

例如

执行 Bulk 方法

以下内容在 items 集合上初始化了一个 Bulk() 操作构建器,添加了一系列插入操作,并执行了这些操作

#5. Bulk.find(<query>) 方法

它可用于指定更新或删除操作的查询条件。 使用查询选择器指定查询条件,以选择用于更新或删除操作的文档。 要指定所有文档,请使用空文档 {}。

Bulk.find() 可以与写命令的以下操作一起使用

例如

下面给出的示例初始化了 items 集合的 Bulk() 操作构建器,并添加了一个删除操作。 它还更新了操作列表。 使用 Bulk.find() 方法进行删除操作和更新操作,为其各自的操作指定条件

#6. Bulk.find.remove() 方法

它将删除操作添加到批量操作列表中。可以使用 Bulk.find() 方法指定条件,该条件确定要删除的文档。 Bulk.find.remove() 从集合中删除所有匹配的文档。

下面给出的示例初始化了 items 集合的 Bulk() 操作构建器并添加了删除操作。 删除操作可用于删除集合中状态等于 "D" 的所有文档

#7. Bulk.find.replaceOne(<document>) 方法

它可用于将单个文档替换操作添加到批量操作列表中。 使用此方法指定确定必须替换的文档的条件。 该方法将替换限制为单个文档。

替换文档完全替换现有文档。 仅包含字段和值对。

例如

下面给出的示例初始化了 items 集合的 Bulk() 操作构建器,并将各种 replaceOne 操作添加到操作列表中。

#8. Bulk.find.update(<update>) 方法

它可用于将多重更新操作添加到批量操作列表中。 该方法更新现有文件的特定字段。

可以使用 Bulk.find() 方法指定确定必须更新的文档的条件。 该方法更新所有匹配的文档。

例如

以下示例初始化了 items 集合的 Bulk() 操作构建器,并将各种多重更新操作添加到操作列表中。

#9. Bulk.insert(<document>) 方法

它可用于将插入操作添加到批量操作列表中。

例如

该示例初始化了 items 集合的 Bulk() 操作构建器,并添加了一系列插入操作以添加多个文档

#10. Bulk.toString()

它可用于将输出作为字符串返回一个 JSON 文档,其中包含 Bulk() 对象中的操作和批次数。

例如

下面的示例在 items 集合上初始化了 Bulk() 操作构建器,添加了一系列写操作,并在 bulk 构建器对象上调用了 Bulk.toString()。