You can use this Snap to update documents in a MongoDB collection. It also supports the upsert capability.
The upstream schema suggest is only supported if the defined collection provides data. MongoDB does not provide a metadata API to describe the collection, so the SnapLogic platform looks at the data and derives the schema from it
A map data to evaluate expression properties and/or to update documents in a MongoDB collection. Each input document produces one document at the output view or the error view.
Output
Document
Min: 0
Max: 1
Any Snap with document input view.
In the above output:
updatedDocuments - is the number of MongoDB documents that are changed in the update query. The updateOfExisting is true if updatedDocuments is greater than 0.
matchedDocuments - is the number of MongoDB documents that match the query for potential change.
updateOfExisting - is true if there are any updatedDocuments, otherwise, false.
For example, if the existing documents are:
And an update with query{} and input document of:
then the result will be as follows:
Before introducing the matchedDocuments definition, the updateOfExisting would be true if matchedDocuments was greater than 0. Now, updateOfExisting is true if updatedDocuments is greater than 0.
The updateOfExisting output documents would be false if the update query matched documents, but didn’t update documents.
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 while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:
Stop Pipeline Execution: Stops the current pipeline execution when the Snap encounters an error.
Discard Error Data and Continue: Ignores the error, discards that record, and continues with the rest of the records.
Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.
Suggestion icon (): Indicates a list that is dynamically populated based on the configuration.
Expression icon (): Indicates whether 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 field set.
Remove icon (): Indicates that you can remove fields from the field set.
The update query represents the update query parameter. It is an expression that evaluates to an object or JSON string. When the expression evaluates to an object, only strict mode is supported. When the expression evaluates to a JSON string, both strict mode and mongo shell mode are supported. Learn more about MongoDB Extended JSON.
Update operation
Default Value: $set Example: $min
String/Expression/Suggestion
Specify the operation to be performed on the update query.
Exclude list
List of input fields to exclude from the dataset.
Exclude field
Default Value: _id Example: $ranking
String/Suggestion
Specify the list of input fields that must be removed from the dataset before sending the dataset to MongoDB.
Array filters
Default Value:N/A Example: $arrayFilters
Expression/Textbox
Specify the filter conditions to determine the array elements you want to modify for the update operation. This field supports upstream values.
Upsert
Default Value: Deselected
Checkbox
Select this checkbox to insert a document from the input view if no document in the collection matches the update query criteria.
Update all that match
Default Value: Selected
Checkbox
Select this checkbox to update all documents in the collection that match the update query criteria; otherwise the Snap updates only one document.
Pass through
Default value:Selected
Checkbox
Select this checkbox to pass the input document through to the output view under the key 'original'. The document is passed to the Parameter output view, and it will also be passed to the Result Set output view if output is sent from this view.
Snap execution
Default Value:Execute only Example: Validate & Execute
Dropdown list
Select one of the three modes in which the Snap executes. Available options are:
Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.
Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.
Disabled: Disables the Snap and all Snaps that are downstream from it.
Examples
Update records using array filters
This example pipeline below demonstrates how to use the Array filters field to update records with filter conditions.
Download this pipeline.
Step 1: Configure the MongoDB - Find Snap to search for all the records with record id =1.
Step 2: Configure the Mapper Snap with the employees' salaries to be updated for employees, employees_1, and employees_2 elements within the record id=1.
Step 3: Configure the MongoDB - Update Snap with the following filter conditions:
{{elem.dept = QA} and {elem.age = 32}}
{{elem1.dept = QA} or {elem1.age = 32}}
{{elem2.dept = QA} or {elem2.salary <= 25000}}
On validation, you can see that the record with id equals to 1 with multiple elements is updated based on the matched conditions.
Update collection in MongoDB
This example pipeline demonstrates how to update the collection from an upstream Snap to the MongoDB table using the MongoDB Update Snap.
Configure the JSON Generator Snap with the data to be updated to the MongoDB collections.
Configure the MongoDB Update Snap with the collection name, Sample data, to be updated with the values just passed from the upstream JSON Generator Snap. The update query condition
"{field002:'"+$field002+"'}" is passed (with the expression enabled) to update the documents in the collection.
The successful execution of the pipeline displays the below output preview:
Downloads
Important steps to successfully reuse Pipelines
Download and import the Pipeline into SnapLogic.
Configure Snap accounts as applicable.
Provide Pipeline parameters as applicable.
File
Modified
Snap Pack History
Click to view/expand
Release
Snap Pack Version
Date
Type
Updates
May 2024
main26341
Stable
Enhanced the MongoDB Update Snap with the Array Filters field, which enables you to use array filters in the update operation. Additionally, the Update Query field is modified into a text box for visibility and usability of input queries.
Upgraded Spring dependencies to the latest supported Java 11 version for MongoDB Snap Pack.
February 2024
436patches26244
Latest
Added the following Snap to the MongoDB Snap Pack:
MongoDB - Atlas Vector Search: Performs advanced vector-based queries, such as Similarity searches, Approximate Nearest Neighbor (ANN) queries, and Range queries on vector data stored in MongoDB Atlas.
February 2024
436patches25893
Latest
Added MongoDB Execute Snap to the MongoDB Snap Pack.
February 2024
main25112
Stable
Updated and certified against the current SnapLogic Platform release.
November 2023
main23721
Stable
Updated and certified against the current SnapLogic Platform release.
August 2023
main22460
Stable
Updated and certified against the current SnapLogic Platform release.
May 2023
main21015
Stable
Upgraded with the latest SnapLogic Platform release.
February 2023
main19844
Stable
Upgraded with the latest SnapLogic Platform release.
November 2022
main18944
Stable
Upgraded with the latest SnapLogic Platform release.
September 2022
430patches18223
Latest
TheMongoDB UpdateSnap in a low-latency feed Ultra Pipeline now correctly acknowledges the requests.
August 2022
430patches17472
Latest
The MongoDB Account with Encryption type set to TLS/SSL does not fail with the "URL cannot be null" error.
August 2022
main17386
Stable
Upgraded with the latest SnapLogic Platform release.
4.29Patches
429patches15807
Latest
Updated the expected output for the MongoDB - Update Snap that is changed because of the upgrade of Spring Core framework version.
4.29
main15993
Stable
Upgraded with the latest SnapLogic Platform release.
4.28
main14627
Stable
Upgraded with the latest SnapLogic Platform release.
4.27
main12833
Stable
Upgraded with the latest SnapLogic Platform release.
4.26
main11181
Stable
Upgraded with the latest SnapLogic Platform release.
4.25
main9554
Stable
Upgraded with the latest SnapLogic Platform release.
4.24
main8556
Stable
Fixed an issue in the MongoDB accounts to connect to Atlas Free Tier and Shared Cluster database using theUse cursor timeoutcheckbox in the MongoDB cursor properties. If selected, this option enables the server to close a cursor automatically after a period of inactivity. For the existing accounts that does not have this field, the value for this checkbox returnsfalse, which is backward compatible.
4.23
main7430
Stable
Upgraded with the latest SnapLogic Platform release.
4.22
main6403
Stable
Upgraded with the latest SnapLogic Platform release.
4.21 Patch
421patches6272
Latest
Fixes the issue whereSnowflake SCD2Snap generates two output documents despite no changes toCause-historizationfieldswithDATE, TIME and TIMESTAMPSnowflake data types, and withIgnore unchanged rowsfield selected.
4.21 Patch
421patches6144
Latest
Fixes the following issues with DB Snaps:
The connection thread waits indefinitely causing the subsequent connection requests to become unresponsive.
Connection leaks occur during Pipeline execution.
4.21 Patch
MULTIPLE8841
Latest
Fixes the connection issue in Database Snaps by detecting and closing open connections after the Snap execution ends.
4.21
snapsmrc542
Stable
Upgraded with the latest SnapLogic Platform release.
4.20
snapsmrc535
Stable
Upgraded with the latest SnapLogic Platform release.
4.19
snaprsmrc528
Stable
Upgraded with the latest SnapLogic Platform release.
4.18
snapsmrc523
Stable
Added the following fields to the Mongo DB Find Snap: Projection Condition, Sort Condition, Offset, Limit, and Group result.
Added a new Snap, MongoDB Group, which enables you to group input documents by a specified expression, and output to the next stage, one document for each distinct grouping.
Added a new field to the Mongo DB Update Snap,Update operationandExclude list, which enable you to update operations and exclude a list of JSON properties before sending the updated documents to MongoDB.
4.17
ALL7402
Latest
Pushed automatic rebuild of the latest version of each Snap Pack to SnapLogic UAT and Elastic servers.
4.17 Patch
db/mongo7331
Latest
Fixed an issue with the MongoDB - Update Snap wherein the Snap converts all non-updated integer and float data types to string data type.
Fixed a Null Pointer Exception for old MongoDB accounts that did not have driver jars.
4.17
snapsmrc515
Latest
Added the Snap Execution field to all Standard-mode Snaps. In some Snaps, this field replaces the existing Execute during preview check box.
4.16
snapsmrc508
Stable
Upgraded with the latest SnapLogic Platform release.
4.15 Patch
db/mongo6783
Latest
Fixed connection timeout issue with MongoDB.
4.15 Patch
db/mongo6465
Latest
Fixed an issue wherein REST calls to Ultra tasks returned an error message.
4.15
snapsmrc500
Stable
Upgraded with the latest SnapLogic Platform release.
4.14 Patch
db/mongo5666
Latest
Fixed the Update, Delete, and Find Snaps to populate input view schema for a given table, similar to the Insert Snap.
4.14
snapsmrc490
Stable
Upgraded with the latest SnapLogic Platform release.
4.13 Patch
mongo5537
Latest
Fixed the Update, Delete, and Find Snaps to populate input view schema for a given table, similar to the Insert Snap.
4.13
snapsmrc486
Stable
Upgraded with the latest SnapLogic Platform release.
4.12
snapsmrc480
Stable
Added the SSl certification properties to all the MongoDB Accounts to ensure the validation of the certificate.
4.11
snapsmrc465
Stable
Upgraded with the latest SnapLogic Platform release.
4.10 Patch
mongo3978
Latest
Resolved an issue where the NumberFormatException was not handled properly for some of the valid Number Types like "NaN"/ "+Infinity"/ "-Infinity".
4.10
snapsmrc414
Stable
Upgraded with the latest SnapLogic Platform release.
4.9.0 Patch
mongodb3259
Latest
Addressed an issue in MongoDB Update where Upsert Date failed with "Can't find a codec for class org.joda.time".
MongoDB Insert Snap - Collectio name expression evaluate fixed.
4.9
snapsmrc405
Stable
Query Condition property is now an expression that evaluates to an object or JSON string.
Updated the Snap with Database nameproperty to support the users defined in an authentication database.
4.8.0 Patch
mongodb2735
Latest
Added SSL encryption type to all MongoDB accounts and Replica set Accounts and removed the MongoDB SSL account.
4.8
snapsmrc398
Stable
The MongoDB Delete Snap and MongoDB Update Snap were introduced in this release.
Enhanced the MongoDB Snap account with SSL Account type.
Updated the Batch Size property in MongoDB Find with the default value of 0.
Enhanced the MongoDB Find Snap documentation with an example.
Info tab added to accounts.
Database accounts now invalidate connection pools if account properties are modified and login attempts fail.
4.7 Patch
mongo2375
Latest
Update the MongoDB java driver to 3.0.4; Add exception handling to each record processing.
MongoDB SSL Account removed and replaced with the new configuration for all the Accounts (Encryption type Property).
4.7 Patch
mongo2338
Latest
Add an account for MongoDB SSL connection without certificates validation
4.7 Patch
mongo2200
Latest
Fixed an issue for database Select Snaps regarding Limit rows not supporting an empty string from a pipeline parameter.
4.7
snapsmrc382
Stable
Updated the Snap account with the LDAP Authentication type.
4.6
snapsmrc362
Stable
Resolved an issue in MongoDB Insert Snap that processed and inserted all numeric fields as strings.
4.5.1
snapsmrc344
Stable
Resolved and issue with MongoDB Insert with an empty input view failed.
Resolved an issue with MongoDB Insert that changed a numeric type field in MongoDB as String.
Resolved an issue that caused Snap execution failures when accessing MongoDB using a Replica Set account.
4.3.2
Stable
Resolved an issue with MongoDB Find returning nothing when nothing was found.
4.3
Stable
Resolved an issue with an incorrect resolution displaying during account validation if the username was blank.
Resolved an issue in the MongoDB Find Snap with nested arrays.
Resolved an issue in MongoDB Find with data not being usable be other Snaps.
4.2.2
Stable
Username and Password are no longer required fields when creating a MongoDB account because it is possible to configure an instance where that information is not required.
MongoDB Aaccount now supports Mongo Java Driver 3.0.2.
MongoDB Find
Resolved an issue with MongoDB Find not properly supporting the expression language.
Resolved an issue with MongoDB Find returning "Current context not an ARRAY but OBJECT" for a deep nested ObjectId object.
Resolved an issue with MongoDB Find when data had built-in datatype.
Resolved a null pointer exception in MongoDB Find.
Resolved an issue with MongoDB Find not routing failed documents to the error view.
Resolved an issue with MongoDB error handling when maximum number of documents reached.
Improved the error message presented when MongoDB database could not reach the JCC.
4.2.1
Stable
MongoDB - Find: Resolved Error- Failure: java.util.HashMap cannot be cast to java.lang.String when in query condition passes without single quotes.
MongoDB - Find: Resolved failure with Query Using Operators.
Resolved MongoDB driver and account do not support current version of MongoDB.
Resolved a failure MongoDB Insert with custom _id.