MongoDB - Execute
In this article
Overview
You can use this Snap to execute all Data Manipulation Language (DML) and Data Definition Language (DDL) commands on the MongoDB database.
Snap Type
The MongoDB - Execute Snap is a Write type Snap.
Prerequisites
None.
Support for Ultra Pipelines
Works in Ultra Pipelines.
Limitations
MongoDB driver has limited support for inline or multiline comments in a command.
This Snap supports only specific date-type formats because it uses a Mongo template that supports only JSON format. A few of the supported date-type formats are:
{ "$date": "2020-09-01T00:00:00Z" }
ISODate("2020-01-15T00:00:00Z")
Known Issues
None.
Supported Versions
The Mongo-DB Execute Snap is tested against v4.2.24.
Snap Views
Type | Format | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input | Document
|
|
| Requires the command to be executed on the specified database. |
Output | Document
|
|
| The original document that was used to create the statement will be output with the status of the statement executed. |
Error | Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter when running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab:
Learn more about Error handling in Pipelines. |
Snap Settings
Asterisk ( * ): Indicates a mandatory field.
Suggestion icon (): Indicates a list that is dynamically populated based on the configuration.
Expression icon ( ): Indicates the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.
Add icon ( ): Indicates that you can add fields in the fieldset.
Remove icon ( ): Indicates that you can remove fields from the fieldset.
Upload icon ( ): Indicates that you can upload files.
Field Name | Field Type | Description |
---|---|---|
Label*
Default Value: MongoDB - Execute | String | Enter a unique name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline. |
Database name
Default Value: N/A | String/Suggestion | Specify the database name where the query is executed.
|
Command*
Default Value: N/A | String/Expression | Specify the MongoDB command to execute on the MongoDB instance using the
|
Number of retries Default Value: 0 | Integer | Specify the number of retry attempts to make when the Snap fails to make a connection. |
Retry interval (seconds) Default Value: 1 | Integer | Specify the time interval between two retry requests. |
Snap Execution Default Value: Execute only | Dropdown list | Select one of the following three modes in which the Snap executes:
|
Usage of runCommand()
You can use the runCommand() to perform the following:
Administrative tasks: You can check Server status, do database profiling, replication-related operations, user management, and more.
Access internal commands: You can access and execute the internal commands.
Diagnostic Commands: You can execute diagnostic commands to gather information about the database, collections, indexes, or server status.
Examples:
Checking server status
db.runCommand({ serverStatus: 1 })
Listing databases:
db.runCommand({ listDatabases: 1 })
Checking the current operation in progress
db.runCommand({ currentOp: 1 })
Document insertion into a collection
db.runCommand( {
insert: "Test1",
documents: [ { _id: 7, title: "Mary test", body: "Execute snap for MongoDB snappack" } ]
} )
Document updation into a collection
db.runCommand({ update: "Test1", updates: [ { q: { title: "abc123" }, u: { $set: { body: "Toy Story" }, $inc: { points: 1 } } } ], ordered: false, writeConcern: { w: "majority", wtimeout: 5000 } })
Document deletion from collection
db.runCommand({ delete: "Test1", deletes: [ { q: { title: "Mary test" }, limit: 1 } ], ordered: false, writeConcern: { w: "majority", wtimeout: 5000 } })
Creating indexes for a collection
db.runCommand( { createIndexes: "collectionName", indexes: [ { key: { field1: 1, field2: -1 }, name: "indexName", unique: true }, { ... }, { ... } ], writeConcern: { w: "majority" }, commitQuorum: 1, comment: "Optional comment" } )
Example
This example demonstrates how to use the common (Create, Insert, and Find) commands in MongoDB.
Configure the pipeline with three MongoDB Execute Snaps to perform the create, insert, and find operations. Each Snap in this pipeline performs the following operations:
Create employee details collection (collection indicates a table in MongoDB)
Insert the employee data into the collection
Retrieve the employee data
Create: Configure the Execute Snap with the create
command to create a collection named employees_data with id, name, and salary fields.
Insert: Configure the Execute Snap with the insert
command to insert three records of employees (id:1, id:2, id:3) with their salary details.
Find: Configure the Execute Snap with the find
command to retrieve the employee details.
On validation, you can view the inserted records of the employees in the employee_data collection.
Related Content
Have feedback? Email documentation@snaplogic.com | Ask a question in the SnapLogic Community
© 2017-2024 SnapLogic, Inc.