---
title: "Update Documents"
method: POST
path: "/action/updateMany"
---

# Update Documents

`POST /action/updateMany`

Update multiple documents in a collection.

## Request body

- UpdateRequestBody
  - `dataSource` string, required — The name of a linked MongoDB Atlas data source. This is commonly `"mongodb-atlas"` though it may be different in your App if you chose a different name when you created the data source.
  - `database` string, required — The name of a database in the specified data source.
  - `collection` string, required — The name of a collection in the specified database.
  - `filter` object, required — A MongoDB query filter that matches documents. For a list of all query operators that the Data API supports, see [Query Operators](https://www.mongodb.com/docs/atlas/app-services/mongodb/crud-and-aggregation-apis/#query-operators).
  - `update` object, required — A MongoDB update expression to apply to matching documents. For a list of all update operators that the Data API supports, see [Update Operators](https://www.mongodb.com/docs/atlas/app-services/mongodb/crud-and-aggregation-apis/#update-operators).
  - `upsert` boolean — When `true`, if the update filter does not match any existing documents, then insert a new document based on the filter and the specified update operation.

## Response `200`

Updated

- object
  - `matchedCount` number, required — The number of documents matched by the query filter.
  - `modifiedCount` number, required — The number of matched documents that were modified.
  - `upsertedId` string — The `_id` value of the upserted document.

## Other responses

- `400` — The request was malformed or incomplete.
- `401` — The authenticated user does not have permission to access this endpoint.

---

[API](https://skmtc.net/ferretdb/apis/ferretdb-data-api.md) · [All operations](https://skmtc.net/ferretdb/apis/ferretdb-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ferretdb/ferretdb-data-api/versions/6fcb7dd3fcd6/schema)
