- Reference >
mongoShell Methods >- Bulk Operation Methods >
- Bulk.find.updateOne()
Bulk.find.updateOne()¶
On this page
Tip
Starting in version 3.2, MongoDB also provides the
db.collection.bulkWrite() method for performing bulk
write operations.
Description¶
-
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. TheBulk.find.updateOne()method limits the update to a single document. To update multiple documents, seeBulk.find.update().Bulk.find.updateOne()accepts the following parameter:Parameter Type Description update document or pipeline The modifications to apply. Can be one of the following:
A replacement document Contains only field and value pairs.
See also
Bulk.find.replaceOne().Update document Contains only update operator expressions. Aggregation pipeline
Starting in MongoDB 4.2Contains only the following aggregation stages:
$addFieldsand its alias$set$projectand its alias$unset$replaceRootand its alias$replaceWith.
For more information on the update modification parameter, see the
db.collection.updateOnereference page.The sum of the associated
<query>document from theBulk.find()and the update document must be less than or equal to themaximum BSON document size.- To specify an upsert: true for this operation,
use with
Bulk.find.upsert(). - To specify arrayFilters to update specific array
elements, use with
Bulk.find.arrayFilters(). - To specify the index to use for the associated
Bulk.find(), seeBulk.find.hint(). - To replace a document wholesale, see also
Bulk.find.replaceOne().
Behavior¶
If the <update> document contains only update operator expressions, as in:
Then, Bulk.find.updateOne() updates only the corresponding
fields, status and points, in the document.
Example¶
The following example initializes a Bulk() operations builder
for the items collection, and adds various
updateOne operations to the list of operations.
Update with Aggregation Pipeline¶
Starting in version 4.2, update methods can accept an aggregation pipeline. For example, the following uses:
- the
$setstage which can provide similar behavior to the$setupdate operator expression, - the aggregation variable
NOW, which resolves to the current datetime and can provide similar behavior to a$currentDateupdate operator expression. To access aggregation variables, prefix the variable with double dollar signs$$and enclose in quotes.