Mongo event
Overview
The MongoDB event stream source works similar to Cinchy's Change Data Capture functionality. The listener subscribes to monitor the change stream of a specific collection in the database of the MongoDB server. Any actions performed on document(s) inside of that collection are picked up by the listener and sent to the queue.
Limitations
To use change streams in MongoDB, there are a few requirements your environment must meet.
- The database must be in a replica set or sharded cluster.
- The database must use the WiredTiger storage engine.
- The replica set or sharded cluster must use replica set protocol version 1.
The MongoDB Event source supports real-time syncs.
\
Info tab
You can find the parameters in the Info tab below (Image 1).
Values
Parameter | Description | Example |
---|---|---|
Title | Mandatory. Input a name for your data sync | Mongo event to Cinchy |
Description | Optional. Add in a description for your sync. There is a 500 character limit in thie field. | |
Variables | Optional. Review our documentation on Variables here for more information about this field. | |
Permissions | Data syncs are role based access systems where you can give specific groups read, write, execute, and/or all of the above with admin access. Inputting at least an Admin Group is mandatory. |
Source tab
The following table outlines the mandatory and optional parameters you will find on the Source tab (Image 2).
- Source Details
- Listener Configuration
- Schema
The following parameters will help to define your data sync source and how it functions.
Parameter | Description | Example |
---|---|---|
Source | Mandatory. Select your source from the drop-down menu. | MongoDB Event |
To set up a real-time sync, you must configure your Listener values. You can do so through the Connections UI.
Note that If there is more than one listener associated with your data sync, you will need to configure the addition listeners via the Listener Configuration table.
Reset Behaviour
Parameter | Description | Example |
---|---|---|
Auto Offset Reset | Earliest, Latest, or None. In case the listener starts with no last message ID or an invalid one, this column serves as a fallback to decide where to start reading events from. Earliest: Starts from the beginning of the queue (when the CDC was enabled on the table). Useful for recoverable use cases. Latest: Fetches the last value after the most recent processed message. Typical configuration. None: Won't start reading any events. Switching between types is possible after initial configuration. See Error logging and troubleshooting. | None |
Topic JSON
The below table can be used to help create your Topic JSON needed to set up a real-time sync.
Parameter | Description | Example |
---|---|---|
Database | Mandatory. The name of your MongoDB database. | Cinchy |
Collection | Mandatory. The name of your MongoDB collection. | Employee |
Pipeline Stages | Optional. Allows specifying pipeline stages with filters. In MongoDB, an aggregation pipeline consists of stages that process documents:
| Example Topic JSON: Filters documents with ID between 0 and 10,000 and location set to Montreal, or operation type 'delete'. |
Example Topic JSON
{
"database": "cinchy",
"collection": "employee",
"changeStreamSettings": {
"pipelineStages": [
"{ $match: {
$or: [
{ $and: [
{ 'fullDocument.id': { $gt: 0, $lt: 10000 } },
{ 'fullDocument.location': 'Montreal' } ]
},
{ 'operationType': 'delete' }
]
} }"
]
}
}
Connection Attributes
The below table can be used to help create your Connection Attributes JSON needed to set up a real-time sync.
Parameter | Description | Example |
---|---|---|
connectionString | Mandatory. Your MongoDB connection string. | mongodb://localhost:9877 |
{
"connectionString": "mongodb://localhost:9877"
}
**The** Schema section is where you define which source columns you want to sync in your connection. You can repeat the values for multiple columns.
Parameter | Description | Example |
---|---|---|
Name | Mandatory. The name of your column as it appears in the source. | Name |
Alias | Optional. You may choose to use an alias on your column so that it has a different name in the data sync. | |
Data Type | Mandatory. The data type of the column values. | Text |
Description | Optional. You may choose to add a description to your column. |
Select Show Advanced for more options for the Schema section.
Parameter | Description | Example |
---|---|---|
Mandatory |
| |
Validate Data |
| |
Trim Whitespace | Optional if data type = text. For Text data types, you can choose whether to trim the whitespace._ | |
Max Length | Optional if data type = text. You can input a numerical value in this field that represents the maximum length of the data that can be synced in your column. If the value is exceeded, the row will be rejected (you can find this error in the Execution Log). |
You can choose to add in a Transformation > String Replacement by inputting the following:
Parameter | Description | Example |
---|---|---|
Pattern | Mandatory if using a Transformation. The pattern for your string replacement. | |
Replacement | What you want to replace your pattern with. |
Next steps
- Configure your Destination
- Define your Sync Actions.
- Add in your Post Sync Scripts, if required.
- If more than one listener is needed for a real-time sync, configure it/them via the Listener Config table.
- To run a real-time sync, enable your Listener from the Execution tab.