mongodb
Performs operations against MongoDB for each message, allowing you to store or retrieve data within message payloads.
Introduced in version 3.43.0.
# Common config fields, showing default valueslabel: ""mongodb: url: mongodb://localhost:27017 # 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 config fields, showing default valueslabel: ""mongodb: url: mongodb://localhost:27017 # 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
url
The URL of the target MongoDB server.
Type: string
# Examples
url: mongodb://localhost:27017
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.
Type: string
Default: ""
app_name
The client application name.
Type: string
Default: "benthos"
collection
The name of the target collection.
Type: string
operation
The mongodb operation to perform.
Type: string
Default: "insert-one"
Options:
insert-one
, delete-one
, delete-many
, replace-one
, update-one
, find-one
.
write_concern
The write concern settings for the mongo connection.
Type: object
write_concern.w
W requests acknowledgement that write operations propagate to the specified number of mongodb instances. Can be the string “majority” to wait for a calculated majority of nodes to acknowledge the write operation, or an integer value specifying an minimum number of nodes to acknowledge the operation, or a string specifying the name of a custom write concern configured in the cluster.
Type: string
Default: "majority"
write_concern.j
J requests acknowledgement from MongoDB that write operations are written to the journal.
Type: bool
Default: false
write_concern.w_timeout
The write concern timeout.
Type: string
Default: ""
document_map
A bloblang map representing a document to store within MongoDB, expressed as extended JSON in canonical form. The document map is required for the operations insert-one, replace-one and update-one.
Type: string
Default: ""
# Examples
document_map: |- root.a = this.foo root.b = this.bar
filter_map
A bloblang map representing a filter for a MongoDB command, expressed as extended JSON in canonical form. The filter map is required for all operations except insert-one. It is used to find the document(s) for the operation. For example in a delete-one case, the filter map should have the fields required to locate the document to delete.
Type: string
Default: ""
# Examples
filter_map: |- root.a = this.foo root.b = this.bar
hint_map
A bloblang map representing the hint for the MongoDB command, expressed as extended JSON in canonical form. This map is optional and is used with all operations except insert-one. It is used to improve performance of finding the documents in the mongodb.
Type: string
Default: ""
# Examples
hint_map: |- root.a = this.foo root.b = this.bar
upsert
The upsert setting is optional and only applies for update-one and replace-one operations. If the filter specified in filter_map matches, the document is updated or replaced accordingly, otherwise it is created.
Type: bool
Default: false
Requires version 3.60.0 or newer
json_marshal_mode
The json_marshal_mode setting is optional and controls the format of the output message.
Type: string
Default: "canonical"
Requires version 3.60.0 or newer
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. |