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

Bulk.find.update()

在此页面上

  • 说明
  • 例子

提示

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

Bulk.find.update(<update>)

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

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

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

Parameter
类型
说明
文档或管道

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

Update document
聚合管道

仅包含以下聚合阶段:

有关更新修改参数的更多信息,请参阅 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

在此页面上