On this page本页内容
Starting in version 3.2, MongoDB also provides the 从3.2版开始,MongoDB还提供了用于执行批量写入操作的db.collection.bulkWrite() method for performing bulk write operations.db.collection.bulkWrite()方法。
Bulk.find.updateOne(<update>)
Adds a single document update operation to a bulk operations list.将单个文档更新操作添加到批量操作列表。
Use the 使用Bulk.find() method to specify the condition that determines which document to update. Bulk.find()方法指定确定要更新哪个文档的条件。The Bulk.find.updateOne() method limits the update to a single document. Bulk.find.updateOne()方法将更新限制为单个文档。To update multiple documents, see 要更新多个文档,请参阅Bulk.find.update().Bulk.find.update()。
Bulk.find.updateOne() accepts the following parameter:接受以下参数:
| update | document or pipeline |
|
Bulk.find.upsert().upsert:true,请与Bulk.find.upsert()一起使用。arrayFilters to update specific array elements, use with Bulk.find.arrayFilters().arrayFilters来更新特定的数组元素,请与Bulk.find.arrayFilters()一起使用。Bulk.find(), see Bulk.find.hint().Bulk.find()的索引,请参阅Bulk.find.hint()。Bulk.find.replaceOne().Bulk.find.replaceOne()。If the 如果<update> document contains only update operator expressions, as in:<update>文档仅包含更新运算符表达式,如:
{
$set: { status: "D" },
$inc: { points: 2 }
}
Then, 然后,Bulk.find.updateOne() updates only the corresponding fields, status and points, in the document.Bulk.find.updateOne()仅更新文档中相应的字段、status和points。
The following example initializes a 下面的示例初始化Bulk() operations builder for the items collection, and adds various updateOne() operations to the list of operations.items集合的Bulk()操作生成器,并将各种updateOne()操作添加到操作列表中。
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "D" } ).updateOne( { $set: { status: "I", points: "0" } } ); bulk.execute();
Starting in version 4.2, update methods can accept an aggregation pipeline. 从4.2版开始,更新方法可以接受聚合管道。For example, the following uses:例如,以下使用:
$set stage which can provide similar behavior to the $set update operator expression,$set阶段可以提供与$set更新运算符表达式类似的行为,NOW, which resolves to the current datetime and can provide similar behavior to a $currentDate update operator expression. NOW,它解析为当前日期时间,可以提供与$currentDate更新运算符表达式类似的行为。$$ and enclose in quotes.$$并用引号括起来。var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "P" } ).updateOne( [ { $set: { points: 0, lastModified: "$$NOW" } } ] ); bulk.execute();