# mongodb

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [cloud-data-platform-full.txt](https://docs.redpanda.com/cloud-data-platform-full.txt)

---
title: mongodb
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-connect-version: 4.93.0
latest-redpanda-tag: v26.1.9
docname: connect/components/processors/mongodb
page-component-name: cloud-data-platform
page-version: master
page-component-version: master
page-component-title: Cloud
page-relative-src-path: connect/components/processors/mongodb.adoc
page-edit-url: https://github.com/redpanda-data/cloud-docs/edit/main/modules/develop/pages/connect/components/processors/mongodb.adoc
page-git-created-date: "2025-06-25"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/cloud-data-platform/develop/connect/components/processors/mongodb.md -->

**Type:** Processor ▼

[Processor](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/processors/mongodb/)[Cache](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/caches/mongodb/)[Input](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/inputs/mongodb/)[Output](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/outputs/mongodb/)

**Available in:** Cloud, [Self-Managed](https://docs.redpanda.com/connect/components/processors/mongodb/%20%22View%20the%20Self-Managed%20version%20of%20this%20component%22)

Performs operations against MongoDB for each message, allowing you to store or retrieve data within message payloads.

#### Common

```yml
processors:
  label: ""
  mongodb:
    url: "" # No default (required)
    database: "" # No default (required)
    username: ""
    password: ""
    collection: "" # No default (required)
    operation: insert-one
    write_concern:
      w: majority
      j: false
      w_timeout: ""
    document_map: ""
    filter_map: ""
    hint_map: ""
    upsert: false
```

#### Advanced

```yml
processors:
  label: ""
  mongodb:
    url: "" # No default (required)
    database: "" # No default (required)
    username: ""
    password: ""
    app_name: benthos
    collection: "" # No default (required)
    operation: insert-one
    write_concern:
      w: majority
      j: false
      w_timeout: ""
    document_map: ""
    filter_map: ""
    hint_map: ""
    upsert: false
    json_marshal_mode: canonical
```

## [](#fields)Fields

### [](#app_name)`app_name`

The client application name.

**Type**: `string`

**Default**: `benthos`

### [](#collection)`collection`

The name of the target collection.

**Type**: `string`

### [](#database)`database`

The name of the target MongoDB database.

**Type**: `string`

### [](#document_map)`document_map`

A Bloblang map that represents a document to store in MongoDB, expressed as [extended JSON in canonical form](https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/). The `document_map` parameter is required for the following database operations: `insert-one`, `replace-one`, `update-one`, and `aggregate`.

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
document_map: |-
  root.a = this.foo
  root.b = this.bar
```

### [](#filter_map)`filter_map`

A Bloblang map that represents a filter for a MongoDB command, expressed as [extended JSON in canonical form](https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/). The `filter_map` parameter is required for all database operations except `insert-one`.

This output uses `filter_map` to find documents for the specified operation. For example, for a `delete-one` operation, the filter map should include the fields required to locate the document for deletion.

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
filter_map: |-
  root.a = this.foo
  root.b = this.bar
```

### [](#hint_map)`hint_map`

A Bloblang map that represents a hint or index for a MongoDB command to use, expressed as [extended JSON in canonical form](https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/). This map is optional, and is used with all operations except `insert-one`.

Define a `hint_map` to improve performance when finding documents in the MongoDB database.

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
hint_map: |-
  root.a = this.foo
  root.b = this.bar
```

### [](#json_marshal_mode)`json_marshal_mode`

Controls the format of the output message (optional).

**Type**: `string`

**Default**: `canonical`

| Option | Summary |
| --- | --- |
| canonical | A string format that emphasizes type preservation at the expense of readability and interoperability. That is, conversion from canonical to BSON will generally preserve type information except in certain specific cases. |
| relaxed | A string format that emphasizes readability and interoperability at the expense of type preservation. That is, conversion from relaxed format to BSON can lose type information. |

### [](#operation)`operation`

The MongoDB database operation to perform.

**Type**: `string`

**Default**: `insert-one`

**Options**: `insert-one`, `delete-one`, `delete-many`, `replace-one`, `update-one`, `find-one`, `aggregate`

### [](#password)`password`

The password to use for authentication. Used together with `username` for basic authentication or with encrypted private keys for secure access.

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Manage Secrets](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/secret-management/) before adding it to your configuration.

**Type**: `string`

**Default**: `""`

### [](#upsert)`upsert`

The `upsert` parameter is optional, and only applies for `update-one` and `replace-one` operations. If the filter specified in `filter_map` matches an existing document, this operation updates or replaces the document, otherwise a new document is created.

**Type**: `bool`

**Default**: `false`

### [](#url)`url`

The URL of the target MongoDB server.

**Type**: `string`

```yaml
# Examples:
url: mongodb://localhost:27017
```

### [](#username)`username`

The username required to connect to the database.

**Type**: `string`

**Default**: `""`

### [](#write_concern)`write_concern`

The [write concern settings](https://www.mongodb.com/docs/manual/reference/write-concern/) for the MongoDB connection.

**Type**: `object`

### [](#write_concern-j)`write_concern.j`

The `j` requests acknowledgement from MongoDB, which is created when write operations are written to the journal.

**Type**: `bool`

**Default**: `false`

### [](#write_concern-w)`write_concern.w`

The `w` requests acknowledgement, which write operations propagate to the specified number of MongoDB instances.

**Type**: `string`

**Default**: `majority`

### [](#write_concern-w_timeout)`write_concern.w_timeout`

The write concern timeout.

**Type**: `string`

**Default**: `""`