mongodb input
Executes a query and creates a message for each document received.
- Common
- Advanced
# Common config fields, showing default values
input:
label: ""
mongodb:
url: "" # No default (required)
database: "" # No default (required)
username: ""
password: ""
collection: "" # No default (required)
query: "" # No default (required)
auto_replay_nacks: true
batch_size: 0 # No default (optional)
sort: {} # No default (optional)
limit: 0 # No default (optional)
# All config fields, showing default values
input:
label: ""
mongodb:
url: "" # No default (required)
database: "" # No default (required)
username: ""
password: ""
app_name: "benthos"
aws:
enabled: false
region: "" # No default (optional)
session_duration: "1h"
id: "" # No default (optional)
secret: "" # No default (optional)
token: "" # No default (optional)
role: "" # No default (optional)
role_external_id: "" # No default (optional)
roles: [] # No default (optional)
collection: "" # No default (required)
operation: "find"
json_marshal_mode: "canonical"
query: "" # No default (required)
auto_replay_nacks: true
batch_size: 0 # No default (optional)
sort: {} # No default (optional)
limit: 0 # No default (optional)
Once the documents from the query are exhausted, this input shuts down, allowing the pipeline to gracefully terminate (or the next input in a sequence to execute).
Fields
url
The URL of the target MongoDB server.
Type: string
database
The name of the target MongoDB database.
Type: string
username
The username to connect to the database.
Type: string
Default: ""
password
The password to connect to the database.
This field contains sensitive information. Use a secret reference rather than a literal value.
Type: string
Default: ""
app_name
The client application name.
Type: string
Default: "benthos"
aws
AWS IAM authentication using the MONGODB-AWS mechanism, for example against MongoDB Atlas. When enabled, IAM credentials are used instead of a static username and password. Role-derived session credentials are resolved when the component connects and are re-resolved whenever it reconnects. The mongodb processor and cache establish their client once at creation and cannot refresh expiring session credentials, so role, roles and session tokens are rejected for those components; use the ambient credential chain or long-lived access keys with them. For long-running pipelines, prefer the ambient credential chain (leave keys and roles unset), which the driver refreshes automatically.
Type: object
aws.enabled
Enable AWS IAM authentication using the driver-native MONGODB-AWS mechanism. The MongoDB Atlas database user must be created with the AWS IAM authentication type, and connections require TLS. When no static credentials or roles are configured, the ambient AWS credential chain (environment variables, EC2 instance profile, EKS pod role) is used and expiring credentials are refreshed automatically.
Type: bool
Default: false
aws.region
The AWS region used when assuming roles (for STS calls). Only used when role or roles are configured; the ambient and static-key paths ignore it. If no region is specified then the environment default is used.
Type: string
aws.session_duration
The duration of the STS session requested when assuming roles. AWS requires at least 15 minutes and caps sessions created through role chaining at one hour. Only used when role or roles are configured. When using mongodb_cdc with role assumption, credentials are freshly resolved after the initial snapshot completes, so the streaming phase starts with a full session. The snapshot itself must still complete within a single session duration: snapshot progress is not checkpointed, so a credential expiry mid-snapshot restarts the snapshot from scratch after reconnecting. Once the snapshot completes and is fully acknowledged, its position is checkpointed, so later restarts resume the stream without re-running the snapshot. For very large snapshots prefer the ambient credential chain.
Type: string
Default: "1h"
aws.id
The ID of credentials to use.
Type: string
aws.secret
The secret for the credentials being used.
This field contains sensitive information. Use a secret reference rather than a literal value.
Type: string
aws.token
The token for the credentials being used, required when using short term credentials.
This field contains sensitive information. Use a secret reference rather than a literal value.
Type: string
aws.role
Optional AWS IAM role ARN to assume for authentication. Cannot be combined with roles; use the roles array instead when chaining multiple roles.
Type: string
aws.role_external_id
Optional external ID for the role assumption. Only used with the role field, which cannot be combined with roles.
Type: string
aws.roles
Optional array of AWS IAM roles to assume for authentication. Roles can be assumed in sequence, enabling chaining for purposes such as cross-account access. Each role can optionally specify an external ID. Cannot be combined with role.
Type: array of object
aws.roles[].role
AWS IAM role ARN to assume.
Type: string
Default: ""
aws.roles[].role_external_id
Optional external ID for the role assumption.
Type: string
Default: ""
collection
The collection to select from.
Type: string
operation
The mongodb operation to perform.
Type: string
Default: "find"
Options: find, aggregate
json_marshal_mode
The json_marshal_mode setting is optional and controls the format of the output message.
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. |
query
Bloblang expression describing MongoDB query.
Type: string
auto_replay_nacks
Whether messages that are rejected (nacked) at the output level should be automatically replayed indefinitely, eventually resulting in back pressure if the cause of the rejections is persistent. If set to false these messages will instead be deleted. Disabling auto replays can greatly improve memory efficiency of high throughput streams as the original shape of the data can be discarded immediately upon consumption and mutation.
Type: bool
Default: true
batch_size
A explicit number of documents to batch up before flushing them for processing. Must be greater than 0. Operations: find, aggregate
Type: int
sort
An object specifying fields to sort by, and the respective sort order (1 ascending, -1 descending). Note: The driver currently appears to support only one sorting key. Operations: find
Type: map of int
limit
An explicit maximum number of documents to return. Operations: find
Type: int