title: 'MongoDB Data Connector' sidebar_label: 'MongoDB Data Connector' description: 'MongoDB Data Connector Documentation' tags:
MongoDB is an open-source NoSQL database that stores data in flexible, JSON-like documents, allowing for dynamic schemas and easy scalability.
The MongoDB Data Connector enables federated/accelerated SQL queries on data stored in MongoDB databases.
fromThe from field takes the form mongodb:{table_name} where table_name is the table identifer in the MongoDB server to read from.
nameThe dataset name. This will be used as the table name within Spice.
Example:
The dataset name cannot be a reserved keyword (opens in a new tab)
paramsThe MongoDB data connector can be configured by providing the following params. Use the secret replacement syntax (opens in a new tab) to load the secret from a secret store, e.g. ${secrets:my_mongodb_conn_string}.
| Parameter Name | Description |
|---|---|
mongodb_connection_string | The connection string to use to connect to the MongoDB server. This can be used instead of providing individual connection parameters. |
mongodb_user | The MongoDB username. |
mongodb_pass | The password to connect with. |
mongodb_host | The hostname of the MongoDB server. Defaults to localhost. |
mongodb_port | The port of the MongoDB server. Defaults to 27017. |
mongodb_db | The name of the database to connect to. Defaults to default. |
mongodb_sslmode | Optional. Specifies the SSL/TLS behavior for the connection, supported values: required: (default) This mode requires an SSL connection. If a secure connection cannot be established, server will not connect.preferred: Establishes an encrypted TLS/SSL connection but does not validate the server certificate or hostname (accepts invalid or self-signed certificates). If the server does not support TLS, the connection fails; it is never downgraded to plaintext.disabled: This mode will not attempt to use an SSL connection, even if the server supports it. |
mongodb_sslrootcert | Optional parameter specifying the path to a custom PEM certificate that the connector will trust. |
mongodb_time_zone | Optional. Specifies connection time zone. Default is UTC. Accepts: Fixed offsets (e.g., +02:00).IANA time zone names (e.g., America/Los_Angeles) |
mongodb_auth_source | Optional. Authentication source database. Overrides the default auth source in the connection string. |
mongodb_unnest_depth | Optional. Maximum nesting depth for unnesting embedded documents into a flattened structure. Higher values expand deeper nested fields. Default: 0 |
mongodb_num_docs_to_infer_schema | Optional. Number of documents to use to infer the schema. Defaults to 400. |
mongodb_pool_min | The minimum number of connections to keep open in the pool, lazily created when requested. Default: 1 |
mongodb_pool_max | The maximum number of connections to allow in the pool. Default: 5 |
The table below shows the MongoDB data types supported, along with the type mapping to Apache Arrow types in Spice.
| MongoDB Type | Arrow Type |
|---|---|
String | Utf8 |
Boolean | Boolean |
Int32 | Int32 |
Int64 | Int64 |
Double | Float64 |
Decimal128 | Decimal128 |
Binary | Binary |
Datetime without time | Date32 |
Datetime with time | Timestamp(Millisecond, <Timezone>) |
Timestamp | Timestamp(Millisecond, None) |
Array | List<Utf8> |
Null | Null |
Undefined | Null |
RegularExpression | Utf8 |
JavaScriptCode | Utf8 |
JavaScriptCodeWithScope | Utf8 |
Symbol | Utf8 |
MaxKey | Utf8 |
MinKey | Utf8 |
DbPointer | Utf8 |
ObjectId | Utf8 |
Document | See unnesting section |
:::note
Datetime value is retrieved as a UTC time value (opens in a new tab) by default. Use the mongodb_time_zone configuration parameter to specify the desired time zone for interpreting TIMESTAMP values during data retrieval.:::
Consider the following document:
Using mongodb_unnest_depth you can control the unnesting behavior. Here are the examples:
Spice integrates with multiple secret stores to help manage sensitive data securely. For detailed information on supported secret stores, refer to the secret stores documentation (opens in a new tab). Additionally, learn how to use referenced secrets in component parameters by visiting the using referenced secrets guide (opens in a new tab).