Docs Menu
Docs Home
/
MongoDB Manual
/ / /

Bulk.find.update()

On this page

  • Description
  • Compatibility
  • Example

Tip

MongoDB also provides the db.collection.bulkWrite() method for performing bulk write operations.

Bulk.find.update(<update>)

Adds a multi update operation to a bulk operations list. The method updates specific fields in existing documents.

Use the Bulk.find() method to specify the condition that determines which documents to update. The Bulk.find.update() method updates all matching documents. To specify a single document update, see Bulk.find.updateOne().

Bulk.find.update() accepts the following parameter:

Parameter
Type
Description
document or pipeline

The modifications to apply. Can be one of the following:

Update document
Aggregation pipeline

Contains only the following aggregation stages:

For more information on the update modification parameter, see the db.collection.updateMany() reference page.

The sum of the associated <query> document from the Bulk.find() and the update document must be less than or equal to the maximum BSON document size.

This command is available in deployments hosted in the following environments:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

Note

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

The following example initializes a Bulk() operations builder for the items collection, and adds various multi update operations to the list of operations.

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();

Update methods can accept an aggregation pipeline. For example, the following uses:

  • the $set stage which can provide similar behavior to the $set update operator expression,

  • the aggregation variable NOW, which resolves to the current datetime and can provide similar behavior to a $currentDate update operator expression. To access aggregation variables, prefix the variable with double dollar signs $$ and enclose in quotes.

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

Tip

See also:

Back

Bulk.find.updateOne