Navigation

collection.updateMany()

Definition

collection.updateMany()

Update one or more documents in a collection based on a query filter.

Usage

Example

To call the collection.updateMany() action from a Function, get a collection handle with database.collection() then call the handle’s updateMany() method.

const query = {};
const update = { "$mul": { "quantity": 10 } };
const options = { "upsert": false }

return itemsCollection.updateMany(query, update, options)
  .then(result => {
    const { matchedCount, modifiedCount } = result;
    console.log(`Successfully matched ${matchedCount} and modified ${modifiedCount} items.`)
    return result
  })
  .catch(err => console.error(`Failed to update items: ${err}`))

To call the collection.updateMany() action from a JavaScript SDK, use the RemoteMongoCollection.updateMany() method.

const query = {};
const update = { "$mul": { "quantity": 10 } };
const options = { "upsert": false }

itemsCollection.updateMany(query, update, options)
  .then(result => {
    const { matchedCount, modifiedCount } = result;
    console.log(`Successfully matched ${matchedCount} and modified ${modifiedCount} items.`)
  })
  .catch(err => console.error(`Failed to update items: ${err}`))

To call the collection.updateMany() action from the Java/Android SDK, use the RemoteMongoCollection.updateMany() method.

Document filterDoc = new Document();
Document updateDoc = new Document().append("$mul", new Document().append("quantity", 10));

final Task <RemoteUpdateResult> updateTask =
  itemsCollection.updateMany(filterDoc, updateDoc);
updateTask.addOnCompleteListener(new OnCompleteListener <RemoteUpdateResult> () {
    @Override
    public void onComplete(@NonNull Task <RemoteUpdateResult> task) {
        if (task.isSuccessful()) {
            long numMatched = task.getResult().getMatchedCount();
            long numModified = task.getResult().getModifiedCount();
            Log.d("app", String.format("successfully matched %d and modified %d documents",
                  numMatched, numModified));
        } else {
            Log.e("app", "failed to update document with: ", task.getException());
        }
    }
});

To call the collection.updateMany() action from the Swift/iOS SDK, use the RemoteMongoCollection.updateMany() method.

let query : Document = [];
let update : Document = ["$mul": ["quantity": 10] as Document];

itemsCollection?.updateMany(filter: query, update: update) { result in
    switch result {
    case .success(let result):
        print("Successfully matched \(result.matchedCount) and modified \(result.modifiedCount) items.");
    case .failure(let error):
        print("Failed to modify items: \(error)");
    }
}

Parameters

The collection.updateMany() action has the following form:

collection("myColl").updateMany(filter, update, options)
Parameter Description

Query Filter

filter: <document>

Required. A standard MongoDB query document that specifies which documents to update. You can use most query selectors except for evaluation, geospatial, or bitwise selectors.

Specify an empty query filter ({}) to update all documents in the collection.

Update Operation

update: <document>
Required. A standard MongoDB update document that specifies the update operation to perform on all documents that match the query. You can use most update operators.

Update Options

options: <document>

A document that specifies configuration options for the query. The options document has the following form:

{
   "upsert": <boolean>
}

Upsert

options.upsert: <boolean>
Optional. Default: false. A boolean that, if true, indicates that MongoDB should insert a new document that matches the query filter when the query does not match any existing documents in the collection.

The updateMany() method has the following form:

updateMany(filter, update, options)
Parameter Description

Query Filter

filter: <document>

Required. A standard MongoDB query document that specifies which documents to update. You can use most query selectors except for evaluation, geospatial, or bitwise selectors.

Specify an empty query filter ({}) to update all documents in the collection.

Update Operation

update: <document>
Required. A standard MongoDB update document that specifies the update operation to perform on all documents that match the query. You can use most update operators.

Update Options

options: <document>

A document that specifies configuration options for the query. The options document has the following form:

{
   "upsert": <boolean>
}

Upsert

options.upsert: <boolean>
Optional. Default: false. A boolean that, if true, indicates that MongoDB should insert a new document that matches the query filter when the query does not match any existing documents in the collection.

The updateMany() method has the following form:

updateMany​(Bson filter, Bson update, RemoteUpdateOptions updateOptions)
Parameter Description

Query Filter

filter: <document>

Required. A standard MongoDB query document that specifies which documents to update. You can use most query selectors except for evaluation, geospatial, or bitwise selectors.

Specify an empty query filter ({}) to update all documents in the collection.

Update Operation

update: <document>
Required. A standard MongoDB update document that specifies the update operation to perform on all documents that match the query. You can use most update operators.

Update Options

options: <document>

A document that specifies configuration options for the query. The options document has the following form:

{
   "upsert": <boolean>
}

Upsert

options.upsert: <boolean>
Optional. Default: false. A boolean that, if true, indicates that MongoDB should insert a new document that matches the query filter when the query does not match any existing documents in the collection.

The updateMany() method has the following form:

updateMany(filter, update, options)
Parameter Description

Query Filter

filter: <document>

Required. A standard MongoDB query document that specifies which documents to update. You can use most query selectors except for evaluation, geospatial, or bitwise selectors.

Specify an empty query filter ({}) to update all documents in the collection.

Update Operation

update: <document>
Required. A standard MongoDB update document that specifies the update operation to perform on all documents that match the query. You can use most update operators.

Update Options

options: <document>

A document that specifies configuration options for the query. The options document has the following form:

{
   "upsert": <boolean>
}

Upsert

options.upsert: <boolean>
Optional. Default: false. A boolean that, if true, indicates that MongoDB should insert a new document that matches the query filter when the query does not match any existing documents in the collection.

Return Value

The collection.updateMany() action returns a Promise that resolves to a document that describes the update operation.

Promise<result: document>

The RemoteMongoCollection.updateMany() method returns a Promise that resolves to a RemoteUpdateResult object that describes the update operation.

Promise<result: RemoteUpdateResult>

The RemoteMongoCollection.updateMany() method returns a Task that resolves to a RemoteUpdateResult object that describes the update operation.

Task<Document RemoteUpdateResult>

The RemoteMongoCollection.updateMany() method returns a StitchResult enum that resolves to a RemoteUpdateResult object that describes the update operation.

enum StitchResult {
  case success(result: RemoteUpdateResult)
  case failure(error: StitchError)
}
Value Description

Matched Count

result.matchedCount: <integer>
result.matchedCount: <integer>
result.matchedCount: <Long>
result.matchedCount: <Int>
The number of documents in the collection that match the provided query filter.

Modified Count

result.modifiedCount: <integer>
result.modifiedCount: <integer>
result.modifiedCount: <Long>
result.modifiedCount: <Int>
The number of documents in the collection that were modified by the update operation.

Upserted ID

result.upsertedId: <ObjectID>
result.upsertedId: <ObjectID>
result.upsertedId: <ObjectID>
result.upsertedId: <ObjectID>
The _id value of the document inserted by an upsert operation. This value is only present when the upsert option is enabled and the update query does not match any documents.