ClickHouse/docs/en/engines/table-engines/integrations/mongodb.md
avinzhang 92c41031a5
Update mongodb.md
Customers had difficulties finding the correct connection URL for Mongodb Atlas
2024-06-05 11:24:57 +10:00

1.8 KiB

slug sidebar_position sidebar_label
/en/engines/table-engines/integrations/mongodb 135 MongoDB

MongoDB

MongoDB engine is read-only table engine which allows to read data (SELECT queries) from remote MongoDB collection. Engine supports only non-nested data types. INSERT queries are not supported.

Creating a Table

CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
    name1 [type1],
    name2 [type2],
    ...
) ENGINE = MongoDB(host:port, database, collection, user, password [, options]);

Engine Parameters

  • host:port — MongoDB server address.

  • database — Remote database name.

  • collection — Remote collection name.

  • user — MongoDB user.

  • password — User password.

  • options — MongoDB connection string options (optional parameter).

:::tip If you are using the MongoDB Atlas cloud offering:

- connection url can be obtained from 'Atlas SQL' option
- use options: 'connectTimeoutMS=10000&ssl=true&authSource=admin'

:::

Usage Example

Create a table in ClickHouse which allows to read data from MongoDB collection:

CREATE TABLE mongo_table
(
    key UInt64,
    data String
) ENGINE = MongoDB('mongo1:27017', 'test', 'simple_table', 'testuser', 'clickhouse');

To read from an SSL secured MongoDB server:

CREATE TABLE mongo_table_ssl
(
    key UInt64,
    data String
) ENGINE = MongoDB('mongo2:27017', 'test', 'simple_table', 'testuser', 'clickhouse', 'ssl=true');

Query:

SELECT COUNT() FROM mongo_table;
┌─count()─┐
│       4 │
└─────────┘

You can also adjust connection timeout:

CREATE TABLE mongo_table
(
    key UInt64,
    data String
) ENGINE = MongoDB('mongo2:27017', 'test', 'simple_table', 'testuser', 'clickhouse', 'connectTimeoutMS=100000');