MongoDB Collection

1. Overview

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.

1.1 Considerations

Please review the following considerations prior to setting 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 are not 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) source instead.)

2. Info Tab

You can review the parameters that can be found in the info tab below (Image 1).

Values

Parameter
Description
Example

Title

Mandatory. Input a name for your data sync

MongoDB to Cinchy

Version

Mandatory. This is a pre-populated field containing a version number for your data sync. You can override it if you wish.

1.0.0

Parameters

3. Source Tab

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.

Parameter
Description
Example

Source

Mandatory. Select your source from the drop down menu.

MongoDB Collection

Connection String

Example (Default):

mongodb+srv://<username>:<password>@<mongo host URI>

Example (Against different database):

mongodb+srv://<username>:<password>@<mongo host URI>?authSource=<authentication_db>

Database

Blog

Collection

Article

Type

Query (JSON Object)

A query for retrieving your data. This option appears if you have selected db.collection.find().

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.

Pipeline (JSON Array of Objects)

Use SSL

Example Query

// query: where "Price" is less than 10

blog> db.Articles.find({ "Price": { "$lt": 10 } })
[
  {
    _id: ObjectId("63d8137bd755fcdeed234403"),
    Name: 'Shirt',
    Price: 9.95,
    Details: { Color: 'White', Size: 'Small' },
    Stock: 61
  }
]

Example Projection

// Flatten the document

blog> db.Articles.find({}, { Name: 1, Price: 1, Color: "Details.Color", Size: "Details.Size", Stock: 1 })
[
  {
    _id: ObjectId("63d812afd755fcdeed234402"),
    Name: 'Shirt',
    Price: 19.95,
    Stock: 12,
    Color: 'Details.Color',
    Size: 'Details.Size'
  },
  {
    _id: ObjectId("63d8137bd755fcdeed234403"),
    Name: 'Shirt',
    Price: 9.95,
    Stock: 61,
    Color: 'Details.Color',
    Size: 'Details.Size'
  }
]

4. Next Steps

Appendix A

Data Types

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 con­tains extensions that allow representation of data types that are not 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.

MongoDB
Cinchy
Notes

Double

Number

Supported

String

Text

Supported

Object

Text (JSON)

Supported

Array

Text (JSON)

Supported

Binary Data

Binary

Unsupported

ObjectId

Text

Supported

Boolean

Bool

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

Last updated