> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prophecy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# MongoDB external table gem

> Read and write from MongoDB

export const execution_engine_0 = "Prophecy Automate"

<Info>This gem runs in {execution_engine_0}.</Info>

## Overview

This page describes how to configure MongoDB Source and Target gems, including connection setup, schema options, and available write modes. Use the MongoDB Source or Target gem to read from or write to MongoDB collections within your pipeline.

## Create a MongoDB gem

To create a MongoDB Source or Target gem in your pipeline:

<Steps>
  <Step title="Add a Source or Target gem to the pipeline">
    1. Open your pipeline in the [Studio](/data-analysis/development/studio/studio).
    2. Click on **Source/Target** in the canvas.
    3. Select **Source** or **Target** from the dropdown.
    4. Click on the gem to open the configuration.
  </Step>

  <Step title="Select MongoDB format">
    In the **Type** tab, select **MongoDB**. Then, click **Next**.
  </Step>

  <Step title="Set location details">
    In the **Location** tab, set your connection details and collection location. To learn more, jump to [Source location](#source-location) and [Target location](#target-location).
  </Step>

  <Step title="Set table properties">
    In the **Properties** tab, set the table properties. To learn more, jump to [Source
    properties](#source-properties) and [Target properties](#target-properties).
  </Step>

  <Step title="Preview data (Source only)">
    In the **Preview** tab, load a sample of the data and verify that it looks correct.
  </Step>
</Steps>

## Source configuration

Use these settings to configure a MongoDB Source gem for reading data from a collection.

### Source location

| Parameter                   | Description                                                                                                                      |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Format type                 | Table format for the target. For MongoDB, set to `mongodb`.                                                                      |
| Select or create connection | Select or create a new [MongoDB connection](/data-analysis/environment/connections/mongodb) in the Prophecy fabric you will use. |
| Database                    | Database containing the table you want to read from.                                                                             |
| Name                        | Name of the MongoDB table to read.                                                                                               |

### Source properties

| Property                                     | Description                                                            | Default |
| -------------------------------------------- | ---------------------------------------------------------------------- | ------- |
| Description                                  | Description of the table.                                              | None    |
| No. of docs to consider for Schema inference | Number of documents to sample from the collection to infer the schema. | None    |

## Target configuration

Use these settings to configure a MongoDB Target gem for writing data to a collection.

### Target location

| Parameter                   | Description                                                                                                                      |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Format type                 | Table format for the target. For MongoDB, set to `mongodb`.                                                                      |
| Select or create connection | Select or create a new [MongoDB connection](/data-analysis/environment/connections/mongodb) in the Prophecy fabric you will use. |
| Database                    | Database where the target table will be created or updated.                                                                      |
| Name                        | Name of the MongoDB table to write data to. If the table doesn't exist, it will be created automatically.                        |

### Target properties

| Property    | Description                                                                                          | Default |
| ----------- | ---------------------------------------------------------------------------------------------------- | ------- |
| Description | Description of the table.                                                                            | None    |
| Write Mode  | Whether to overwrite the table, append new data to the table, or throw an error if the table exists. | None    |
