Value | Description | Example |
---|---|---|
connectionString
The connections string for your source
"87E4lvPf83gLK8eKapH6Y0YqIFSNbFlq62uN9487"
Database
The name of your MongoDB database
"test"
Collection
The name of your MongoDB collection.
"Article"
Type
The method used to retrieve your data.
"find"
Query
A query for retrieving your data.
This example query returns data where the price is less than 10$.
Projection
A projection for flattening your source document.
Column Name
The name(s) of your source column(s)
"id" "name" "price" "colour" "size" "stock" "$" (This is used to retrieve the full document.) "Details" (This is imported both as set of fields (flattened from the projection) and as a JSON.)
dataType
The data type of your source column
"Text" "Text" "Number" "Text" "Text" "Number" "Text" "Text"
isMandatory
Whether the column is mandatory or not
"false"
validateData
Whether the column data needs to be validated or not
"false"
MongoDB is a scalable, flexible NoSQL document database platform known for its horizontal scaling and load balancing capabilities, which has given application developers an unprecedented level of flexibility and scalability.
Please review the following considerations before you set up your MongoDB Collection data sync source:
We currently only support SCRAM authentication (Mongo 4.0+).
Syncs are column based. This means that you must flatten the MongoDB source document prior to sync by using a projection (See section 2: Projection (JSON Object)).
The column names used in the source must match elements on the root object, with the exception of "$" which can be used to retrieve the full document.
By default, MongoDB batch size is 101.
By default, bulk operations size is 5000.
Due to a conversion of doubles to decimals that occurs during the sync process, minor data losses may occur.
The following data types aren't supported:
Binary Data
Regular Expression
DBPointer
JavaScript
JavaScript code with scope
Symbol
Min Key
Max Key
The following data types are supported with conversions:
ObjectID is supported, but converted to string
Object is supported, but converted to JSON
Array is supported, but converted to JSON
Timestamp is supported, but converted to 64-bit integers
The MongoDB Collection source supports batch syncs. (To enable real-time syncs with MongoDB, use the MongoDB Collection (Cinchy Event Triggered) or Mongo Event source instead.)
You can find the parameters in the Info tab below (Image 1).
The following table outlines the mandatory and optional parameters you will find on the Source tab (Image 2).
The following parameters will help to define your data sync source and how it functions.
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.
Select Show Advanced for more options for the Schema section.
You can choose to add in a Transformation > String Replacement by inputting the following:
Note that you can have more than one String Replacement
Configure your Destination
Define your Sync Actions.
Add in your Post Sync Scripts, if required.
To run a batch sync, select Jobs > Start Job.
The MongoDB Collection Data Source obtains BSON documents from MongoDB. BSON, short for Binary JSON, is a binary-encoded serialization of JSON-like documents. Like JSON, BSON supÂports the emÂbedÂding of docÂuÂments and arÂrays
withÂin other documents and arrays. BSON also has extensions that allow representation of data types that aren't part of the JSON spec. For exÂample, BSON makes a distinction between Int32
and Int64
.
The following table shows how MongoDB data types are translated in Cinchy.
A retry configuration will automatically retry HTTP Requests on failure based on a defined set of conditions. This capability provides a mechanism to recover from transient errors such as network disruptions or temporary service outages.
Note: the maximum number of retries is capped at 10.
To set up a retry specification:
Select "Add Retry Configuration" from the Source tab.
Select your Delay Strategy.
Linear Backoff: Defines a delay of approximately n seconds where n = current retry attempt.
Exponential Backoff: A strategy where every new retry attempt is delayed exponentially by 2^n seconds, where n = current retry attempt.
Example: you defined Max Attempts = 3. Your first retry is going to be in 2^1 = 2, second: 2^2 = 4, third: 2^3 = 8 sec.
3. Input your Max Attempts. The maximum number of retries allowed is 10.
4. Define your Retry Conditions. You must define the conditions under which a retry should be attempted. For the Retry to trigger, at least one of the "Retry Conditions" has to evaluate to true.
Retry conditions are only evaluated if the response code isn't 2xx Success.
Each Retry Condition contains one or more "Attribute Match" sections. This defines a Regex to evaluate against a section of the HTTP response. The following are the three areas of the HTTP response that can be inspected:
Response Code
Header
Body
If there are multiple "Attribute Match" blocks within a Retry Condition, all have to match for the retry condition to evaluate to true.
The Regex value should be entered as a regular expression. The Regex engine is .NET and expressions can be tested by using this online tool. In the below example, the Regex is designed to match any HTTP 5xx Server Error Codes, using a Regex value of 5[0-9][0-9]
.
For Headers, the format of the Header string which the Regex is applied against is {Header Name}={Header Value}. For example, Content-Type=application/json
.
Parameter | Description | Example |
---|---|---|
Parameter | Description | Example |
---|---|---|
Parameter | Description | Example |
---|---|---|
Parameter | Description | Example |
---|---|---|
Parameter | Description | Example |
---|---|---|
MongoDB | Cinchy | Notes |
---|---|---|
Title
Mandatory. Input a name for your data sync
MongoDB Collection to Cinchy
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
Mandatory. Select your source from the drop down menu.
MongoDB Collection
Connection String
Mandatory. This is the encrypted connection string. You can review MongoDB's Connection String guide and parameter descriptions here. Don't include the /[database] in your connection URL. By default services like MongoDB Atlas will automatically include it when copying the connection string. If authenticating against a database other than the admin db, please provide the name of the database associated with the user’s credentials using the authSource
parameter.
Example (Default):mongodb+srv://:@Example (Against different database):mongodb+srv://:@?authSource=<authentication_db>
Database
Mandatory. The name of the MongoDB database that contains the collection listed in the "Collection" parameter.
Blog
Collection
Mandatory. The name of your MongoDB collection.
Article
Type
Mandatory. The method for retrieving your data. This will be either:- db.collection.find(): This method is used to select documents in a collection when there is no need to transform (flatten or aggregate) the data. It's used for basic queries where query and projection are sufficient.- db.collection.aggregate(): This method is used when there is a need to transform the data in a collection. It's used for more complex scenarios with single or multi-stages pipelines. In general, you will yield the quickest performance by using the find method, unless you need a specific aggregation operator.
Query (JSON Object)
A query for retrieving your data. This option appears if you have selected db.collection.find().
Example Query
Projection (JSON Object)
This option appears if you have selected db.collection.find().Syncs are column based. This means that you must flatten the MongoDB source document prior to sync using a projection.
Example Projection
Pipeline (JSON Array of Objects)
An aggregation pipeline consists of one or more stages that process documents. This option appears if you have selected db.collection.aggregate().
Use SSL
This checkbox can be used to define the use of x.509 certificate authentication for your sync. If checked, you will need to input the following values taken from your cert:- SSL Key PEM- SSL Certificate PEM- SSL CLA PEM
Name
Mandatory. The name of your column as it appears in the source. This field is case sensitive and preserves spaces.
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. You can review the supported data types and their translations here.
Text
Description
Optional. You may choose to add a description to your column.
Mandatory
If both Mandatory and Validated are checked on a column, then rows where the column is empty are rejected
If just Mandatory is checked on a column, then all rows are synced with the execution log status of failed, and the source error of "Mandatory Rule Violation"
If just Validated is checked on a column, then all rows are synced.
Validate Data
If both Mandatory and Validated are checked on a column, then rows where the column is empty are rejected
If just Validated is checked on a column, then all rows are synced.
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).
Pattern
Mandatory if using a Transformation. The pattern for your string replacement.
Replacement
What you want to replace your pattern with.
Double
Number
Supported
String
Text
Supported
Object
Text (JSON)
Supported
Array
Text (JSON)
Supported
Binary Data
Binary
Unsupported
ObjectId
Text
Supported
Boolean
Boolean
Supported
Date
Date
Supported
Null
-
Supported
RegEx
-
Unsupported
JavaScript
-
Unsupported
Timestamp
Number
Supported
32-bit Integer
Number
Supported
64-bit Integer
Number
Supported
Decimal28
Number
Supported
Min Key
-
Unsupported
Max Key
-
Unsupported
-
Geography
Unsupported
-
Geometry
Unsupported