Back to Cube

MongoDB

docs/content/product/configuration/data-sources/mongodb.mdx

1.6.435.3 KB
Original Source

MongoDB

MongoDB is a popular document database. It can be accessed using SQL via the MongoDB Connector for BI, also known as BI Connector.

<CommunitySupportedDriver dataSource="MongoDB" /> <WarningBox>

BI Connector for MongoDB Atlas, cloud-based MongoDB service, is approaching end-of-life. It will be deprecated and no longer supported in June 2025.

</WarningBox>

Prerequisites

<InfoBox>

To use Cube with MongoDB you need to install the MongoDB Connector for BI. Learn more about setup for MongoDB here.

</InfoBox>

Setup

Manual

Add the following to a .env file in your Cube project:

dotenv
CUBEJS_DB_TYPE=mongobi
# The MongoBI connector host. If using on local machine, it should be either `localhost` or `127.0.0.1`:
CUBEJS_DB_HOST=my.mongobi.host
# The default port of the MongoBI connector service
CUBEJS_DB_PORT=3307
CUBEJS_DB_NAME=my_mongodb_database
CUBEJS_DB_USER=mongodb_server_user
CUBEJS_DB_PASS=mongodb_server_password
# MongoBI requires SSL connections, so set the following to `true`:
CUBEJS_DB_SSL=true

If you are connecting to a local MongoBI Connector, which is pointing to a local MongoDB instance, If MongoBI Connector and MongoDB are both running locally, then the above should work. To connect to a remote MongoDB instance, first configure mongosqld appropriately. See here for an example config file.

Environment Variables

Environment VariableDescriptionPossible ValuesRequired
<EnvVar>CUBEJS_DB_HOST</EnvVar>The host URL for a databaseA valid database host URL
<EnvVar>CUBEJS_DB_PORT</EnvVar>The port for the database connectionA valid port number
<EnvVar>CUBEJS_DB_NAME</EnvVar>The name of the database to connect toA valid database name
<EnvVar>CUBEJS_DB_USER</EnvVar>The username used to connect to the databaseA valid database username
<EnvVar>CUBEJS_DB_PASS</EnvVar>The password used to connect to the databaseA valid database password
<EnvVar>CUBEJS_DB_SSL</EnvVar>If true, enables SSL encryption for database connections from Cubetrue, false
<EnvVar>CUBEJS_DB_MAX_POOL</EnvVar>The maximum number of concurrent database connections to pool. Default is 8A valid number
<EnvVar>CUBEJS_CONCURRENCY</EnvVar>The number of concurrent queries to the data sourceA valid number

Pre-Aggregation Feature Support

count_distinct_approx

Measures of type count_distinct_approx can not be used in pre-aggregations when using MongoDB as a source database.

Pre-Aggregation Build Strategies

<InfoBox>

To learn more about pre-aggregation build strategies, head here.

</InfoBox>
FeatureWorks with read-only mode?Is default?
Batching
Export Bucket--

By default, MongoDB uses batching to build pre-aggregations.

Batching

No extra configuration is required to configure batching for MongoDB.

Export Bucket

MongoDB does not support export buckets.

SSL

To enable SSL-encrypted connections between Cube and MongoDB, set the <EnvVar>CUBEJS_DB_SSL</EnvVar> environment variable to true. For more information on how to configure custom certificates, please check out Enable SSL Connections to the Database.