> For the complete documentation index, see [llms.txt](https://upsolver.gitbook.io/content/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://upsolver.gitbook.io/content/quickstarts-1/data-ingestion-wizard/using-the-wizard/source-set-up/mongodb.md).

# MongoDB

### Prerequisite - Configure MongoDB for CDC

Upsolver supports ingesting CDC data from relational databases including MongoDB. Upsolver provides CDC capabilities by running a Debezium Engine under the hood. Connectors detect and ingest changes automatically.

Before you ingest data into Upsolver, you must enable change data capture on your MongoDB database. If you are using a managed MongoDB service such as Atlas, CDC is most likely to be enabled, if not, please refer to the guide to [Deploy a Replica Set](https://www.mongodb.com/docs/manual/tutorial/deploy-replica-set/) for more information

## Step 1 - Connect to your MongoDB

### Create a new connection

Click **Create a new connection**, if it is not already selected.&#x20;

Enter your **Connection** **String** in the following format:

```markup
mongodb+[srv]://HOST
```

where:&#x20;

* `HOST` - the hostname or IP address of the MongoDB Server instance you want to connect to, for example, my-mongo.mongodb.net.

Optionally, provide a username and password to authenticate to the database, and a **Comment**.

In the **Name your connection** field, type in the name for this connection. Please note this connection will be available to other users in your organization.&#x20;

<figure><img src="/files/bDrsrc1VkiqBWXm2crpA" alt=""><figcaption><p>Create a new connection to MongoDB to ingest your CDC data.</p></figcaption></figure>

### Use an existing connection

By default, if you have already created a connection, Upsolver selects **Use an existing connection**, and your MongoDB connection is populated in the list.&#x20;

For organizations with multiple connections, select the source connection you want to use.&#x20;

<figure><img src="/files/b1G4OAiwTw263Ie1engK" alt=""><figcaption><p>Select your existing MongoDB connection to use for your ingestion job. </p></figcaption></figure>

## Step 2 - Select databases and collections

There are two ways to replicate objects to the target:

1. Manually select the databases and collections.
2. Use regular expressions to specify which databases and collections are included and excluded.

The following examples show how to use a regular expression to include specific collections:

<table><thead><tr><th width="287.3333333333333">Expression</th><th>Results</th></tr></thead><tbody><tr><td>db_name.*</td><td>Select all collections in the db_name database.</td></tr><tr><td><p>db_name.users, </p><p>db_name.items</p></td><td>Select users and items collections in the db_name database.</td></tr><tr><td>db_name.items_.*</td><td>Select all collections in the db_name database that start with items_.</td></tr><tr><td>"my.db".*</td><td><p>Select all collections in the my.db database. </p><p></p><p>If the name of the database or collection that you want to include contains a dot (.) in the name of the database or collection, you must escape each part of the name in double quotes.</p></td></tr></tbody></table>

Note: the following databases are internal MongoDB system databases and therefore they will not be replicated:&#x20;

* admin&#x20;
* local&#x20;
* config&#x20;

**Schema evolution**&#x20;

By default, new databases, collections, and fields added after the job is launched, will be replicated to the target.

You can overwrite the default behavior and set specific behavior for newly created databases or collections in a specific database.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://upsolver.gitbook.io/content/quickstarts-1/data-ingestion-wizard/using-the-wizard/source-set-up/mongodb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
