“文档” 菜单
文档首页
/
MongoDB Manual
/ / /

Bulk.find.update()

在此页面上

  • 说明
  • 例子

提示

从版本3开始。 2 ,MongoDB 还提供了 db.collection.bulkWrite()方法来执行批量写入操作。

Bulk.find.update(<update>)

multi 更新操作添加到批量操作列表中。该方法将更新现有文档中的特定字段。

使用 Bulk.find() 方法指定用于决定更新哪些文档的条件。Bulk.find.update() 方法会更新所有匹配的文档。要指定单个文档更新,请参阅 Bulk.find.updateOne()

Bulk.find.update() 接受以下参数:

参数
类型
说明
更新
文档或管道

要应用的修改。可以是以下之一:

更新文档
聚合管道

仅包含以下聚合阶段:

有关更新修改参数的更多信息,请参阅 db.collection.updateMany() 参考页面。

Bulk.find() 和更新文档中关联 <query> 文档的总和必须小于或等于最大 BSON 文档大小

以下示例将为 items 集合初始化 Bulk() 操作构建者,并将各种 multi 更新操作添加到操作列表。

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } );
bulk.find( { item: null } ).update( { $set: { item: "TBD" } } );
bulk.execute();

更新方法可以接受聚合管道。例如,以下使用:

  • $set 阶段,可以提供与 $set 更新操作符表达式类似的行为,

  • 聚合变量 NOW,解析为当前日期时间,可以提供与 $currentDate 更新操作符表达式相似的行为。要访问聚合变量,在变量前加上双美元符号 $$ 并用引号引起来。

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "P" } ).update(
[
{ $set: { points: 0, lastModified: "$$NOW" } }
]
);
bulk.execute();

提示

另请参阅:

← Bulk.find.updateOne()

在此页面上