{"id":952,"date":"2017-01-21T23:00:55","date_gmt":"2017-01-21T23:00:55","guid":{"rendered":"http:\/\/zappysys.com\/blog\/?p=952"},"modified":"2019-09-27T14:50:53","modified_gmt":"2019-09-27T14:50:53","slug":"update-mongodb-array-items-using-ssis","status":"publish","type":"post","link":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/","title":{"rendered":"Update MongoDB Array Items using SSIS"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2115 alignleft\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png\" alt=\"\" width=\"88\" height=\"88\" \/><\/a>In <a href=\"https:\/\/zappysys.com\/blog\/ssis-loading-data-into-mongodb-upsert-update-delete-insert\/\" target=\"_blank\" rel=\"noopener\">our previous blog post<\/a> we saw how to perform Read and Write operations in MongoDB using SSIS (i.e. Bulk Update, Delete, Upsert, Insert). In this post we specifically focus on <em>how to update MongoDB Array items \/ elements using SSIS<\/em>.<\/p>\n<p>To make things simple to follow we have used <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-json-file-source\/\" target=\"_blank\" rel=\"noopener\">JSON Source<\/a> to produce sample JSON documents for MongoDB update (NOTE: Output as Document option is checked for JSON Source). However in real world you may have to use <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-json-generator-transform\/\" target=\"_blank\" rel=\"noopener\">SSIS JSON Generator Transform<\/a> to produce input documents for MongoDB. To learn more about generating JSON documents for MongoDB Load process <a href=\"\/\/zappysys.com\/blog\/create-mongodb-documents-ssis-json-bson-load-update-insert-upsert-collection\/\" target=\"_blank\" rel=\"noopener\">check this blog post<\/a> or watch video found <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-json-generator-transform\/\" target=\"_blank\" rel=\"noopener\">on this page<\/a>.<\/p>\n<h2>Video Tutorial &#8211; Example of insert\/update documents inside MongoDB Array (Use $set, $push operator)<\/h2>\n<div class=\"lyte-wrapper fourthree\" style=\"width:480px;max-width:100%;margin:5px auto;\"><div class=\"lyMe\" id=\"WYL_caiLHfF-pzg\"><div id=\"lyte_caiLHfF-pzg\" data-src=\"https:\/\/zappysys.com\/blog\/wp-content\/plugins\/wp-youtube-lyte\/lyteCache.php?origThumbUrl=%2F%2Fi.ytimg.com%2Fvi%2FcaiLHfF-pzg%2Fhqdefault.jpg\" class=\"pL\"><div class=\"tC\"><div class=\"tT\"><\/div><\/div><div class=\"play\"><\/div><div class=\"ctrl\"><div class=\"Lctrl\"><\/div><div class=\"Rctrl\"><\/div><\/div><\/div><noscript><a href=\"https:\/\/youtu.be\/caiLHfF-pzg\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/plugins\/wp-youtube-lyte\/lyteCache.php?origThumbUrl=https%3A%2F%2Fi.ytimg.com%2Fvi%2FcaiLHfF-pzg%2F0.jpg\" alt=\"\" width=\"480\" height=\"340\" \/><br \/>Watch this video on YouTube<\/a><\/noscript><\/div><\/div><div class=\"lL\" style=\"max-width:100%;width:480px;margin:5px auto;\"><\/div><\/p>\n<h2>Basic Concepts: Performing MongoDB CRUD operations using SSIS<\/h2>\n<p>If you never heard term called CRUD\u00a0stands for\u00a0Create, Read, Update, Delete. These are the most common operations you have to do with any data source. <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\">SSIS PowerPack<\/a> comes with many MongoDB Components to help you with CRUD operations. You can use one or more following components to achieve drag and drop MongoDB CRUD operations in SSIS. When you use SSIS PowerPack for MongoDB all operations will be Bulk Operations by default which means it will provide very high throughput.<\/p>\n<ul>\n<li><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-mongodb-source\/\" target=\"_blank\" rel=\"noopener\">SSIS MongoDB Source<\/a><\/li>\n<li><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-mongodb-destination\/\" target=\"_blank\" rel=\"noopener\">SSIS MongoDB Destination<\/a><\/li>\n<li><a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/ssis-mongodb-executesql-task\/\" target=\"_blank\" rel=\"noopener\">SSIS MongoDB ExecuteSQL Task<\/a><\/li>\n<\/ul>\n<h2>Download Example SSIS Package<\/h2>\n<p>Here is the link to <a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-array-update-sample-package.zip\">download Sample SSIS Package<\/a><\/p>\n<div id=\"attachment_958\" style=\"width: 711px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-update-mongodb-array-items-delete-insert-set-push-pull.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-958\" class=\"size-full wp-image-958\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-update-mongodb-array-items-delete-insert-set-push-pull.png\" alt=\"SSIS Example : Update MongoDB Array Items \/ Elements (Update, Delete, Insert - Using $set, $pull, $push)\" width=\"701\" height=\"487\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-update-mongodb-array-items-delete-insert-set-push-pull.png 701w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-update-mongodb-array-items-delete-insert-set-push-pull-300x208.png 300w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/a><p id=\"caption-attachment-958\" class=\"wp-caption-text\">SSIS Example : Update MongoDB Array Items \/ Elements (Update, Delete, Insert &#8211; Using $set, $pull, $push)<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2>Update MongoDB Array Items ($set operator)<\/h2>\n<p>In next couple of sections we will see how to perform Update, Insert and Delete operations with MongoDB Array Items using various <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/\" target=\"_blank\" rel=\"noopener\">update operators<\/a> and <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update-array\/\" target=\"_blank\" rel=\"noopener\">array operators<\/a>. Consider the following Sample JSON documents for MongoDB. First we will see how to use MongoDB Shell commands to perform CRUD operations on MongoDB Array items.<\/p>\n<pre class=\"lang:default decode:true\">{\r\n    \"_id\" : ObjectId(\"5883ebe669e0f22ba890b49b\"),\r\n    \"CustomerID\" : \"BOLID\",\r\n    \"Name\" : \"Some name\",\r\n    \"Orders\" : [ \r\n        {\r\n            \"OrderID\" : 200,\r\n            \"ShipCountry\" : \"USA\",\r\n            \"City\" : \"Atlanta\"\r\n        }, \r\n        {\r\n            \"OrderID\" : 201,\r\n            \"ShipCountry\" : \"USA\",\r\n            \"City\" : \"New York\"\r\n        }\r\n    ]\r\n}<\/pre>\n<h3>Update Array element using Shell command<\/h3>\n<p>Assume you want to update ShipCountry attribute of one of the Orders\u00a0(OrderID=200) and for CustomerID=&#8221;BOLID&#8221; in above sample document.<\/p>\n<h4>Shell Command for Update Array Item<\/h4>\n<p>Use below shell command in your favorite MongoDB Client Tool (e.g. RoboMongo). Notice two things in below command because we will apply same concepts when we take this approach to SSIS. In below command Actual JSON document is wrapped inside.\u00a0This is MongoDB Update operator. <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/set\/\" target=\"_blank\" rel=\"noopener\">Click here to learn more about $set<\/a>.\u00a0Also notice that rather than nested Array syntax we used Orders.$.ShipCountry to update ShipCountry which is part of Array element. MongoDB provides special way to navigate array elements using \u00a0\u00a0<a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/positional\/\" target=\"_blank\" rel=\"noopener\">$ Operator (MongoDB Positional Update) <\/a><\/p>\n<pre class=\"lang:js decode:true\">db.MyCollection.update(\r\n\t{ \"CustomerID\" : \"BOLID\", \"Orders.OrderID\" : 200 }, \r\n\t{ $set : { \"Orders.$.ShipCountry\" : \"Test1\"} } , \r\n\t{ upsert: false, multi: false}\r\n)<\/pre>\n<h4>After Update (MongoDB Document)<\/h4>\n<p>After you run above shell command notice all other attributes remain there in Array document and only ShipCountry is changed. This is because we used <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/positional\/\" target=\"_blank\" rel=\"noopener\">$ Operator (MongoDB Positional Update) <\/a>rather than supplying Raw JSON for Array document (i.e. Orders : [ { &#8230;\u00a0} ] ).<\/p>\n<pre class=\"lang:default decode:true\">{\r\n    \"_id\" : ObjectId(\"5883ebe669e0f22ba890b49b\"),\r\n    \"CustomerID\" : \"BOLID\",\r\n    \"Name\" : \"Some name\",\r\n    \"Orders\" : [ \r\n        {\r\n            \"OrderID\" : 200,\r\n            \"ShipCountry\" : \"Test1\",\r\n            \"City\" : \"Atlanta\"\r\n        }, \r\n        {\r\n            \"OrderID\" : 201,\r\n            \"ShipCountry\" : \"USA\",\r\n            \"City\" : \"New York\"\r\n        }\r\n    ]\r\n}<\/pre>\n<p>The issue with this approach its not Bulk operation. Assume that you have 100,000 records to update in various documents and its nested array items then row by row operation is not effective. To solve this issue we will use SSIS MongoDB Destination which performs Bulk operations (e.g. Bulk Update, Delete, Insert and Upsert).<\/p>\n<h3>Update MongoDB Array Items using SSIS<\/h3>\n<p>Now lets implement above scenario using SSIS. Assume that you have sample MongoDB document (as per above example &#8211; Before Update). We want to update ShipCountry for OrderID=200 for Customer BOLID. To do that perform following steps in SSIS. If you are updating Second level array (i.e. Root &gt;&gt; Orders &gt;&gt; OrderItems) \u00a0then you have follow slight different process. Check next section in this article about updating second level array (Insert items)<\/p>\n<ol>\n<li>Download and <a href=\"https:\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\">Install SSIS PowerPack<\/a><\/li>\n<li>Create new SSIS Project with one data flow task\n<div id=\"attachment_8028\" style=\"width: 470px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8028\" class=\"size-full wp-image-8028\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/02\/drag-and-drop-data-flow-task.png\" alt=\"\" width=\"460\" height=\"155\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/02\/drag-and-drop-data-flow-task.png 460w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2019\/02\/drag-and-drop-data-flow-task-300x101.png 300w\" sizes=\"(max-width: 460px) 100vw, 460px\" \/><p id=\"caption-attachment-8028\" class=\"wp-caption-text\">Dragging and dropping Data Flow Task into Control Flow<\/p><\/div><\/li>\n<li>Drag ZS JSON Source and check Output as Document option (as below sceenshot). You can use JSON Source is your JSON is stored inside file or Variable or coming from Some API call which eventually go into MongoDB. You can also use JSON Source for quick testing where you Hardcode JSON to feed to MongoDB.<\/li>\n<li>Enter the following JSON in the text area. Click OK to save.\n<pre class=\"lang:default decode:true\">{\"CustomerID\":\"BOLID\", \"Orders.$.OrderID\":201, \"Orders.$.ShipCountry\": \"Test1\"}\r\n{\"CustomerID\":\"BOLID\", \"Orders.$.OrderID\":202, \"Orders.$.ShipCountry\": \"Test2\"}\r\n\/**Below is extra record not found in destination - will be ignored in Update**\/\r\n{\"CustomerID\":\"BOLID\", \"Orders.$.OrderID\":203, \"Orders.$.ShipCountry\": \"Test3\"}<\/pre>\n<\/li>\n<li>Right click in Connections area and Create new ZS-MONGODB connection. Specify credentials and click Test before you hit OK to save.<\/li>\n<li>Now drag ZS MongoDB\u00a0Destination from SSIS Toolbox.<\/li>\n<li>Select Runtime connection.<\/li>\n<li>On the properties tab edit following properties\n<ol>\n<li>Set ColumnsForLookup property as below (Notice how we use 2 columns for JOIN. Also used AS keywords for 2nd Column so we have <em>&lt;column-from-input-doc&gt; AS &lt;column-for-server-side-find&gt;<\/em><br \/>\n<strong><em>CustomerID,Orders.$.OrderID\u00a0AS Orders.OrderID<\/em><\/strong><\/li>\n<li>Set LoadOptions as below (Op is <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\" target=\"_blank\" rel=\"noopener\">Update Operator<\/a> you like to use. In our case its <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/set\/\" target=\"_blank\" rel=\"noopener\">$set<\/a>, Multi=True means if multiple match found then all matching documents will be updated). If you want to use multiple update operators then you have to supply that from Input document and use <strong>op=none<\/strong> option rather <strong>op=$set<\/strong>.<br \/>\n<strong><em>op=$set;multi=true<\/em><\/strong><\/li>\n<li>Set Operation property to Update<\/li>\n<\/ol>\n<\/li>\n<li>On the Mappings tab Map __DOCUMENT__ from upstream (In our case you will see same name column from JSON Source if you checked Output as Document option)<\/li>\n<li>Click OK to save MongoDB Destination UI<\/li>\n<li>Run package. You will notice after execution two orders of CustomerID=BOLID will be updated.<\/li>\n<\/ol>\n<div id=\"attachment_961\" style=\"width: 853px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-read-raw-json-documents.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-961\" class=\"size-full wp-image-961\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-read-raw-json-documents.png\" alt=\"SSIS JSON Source - Read JSON (Raw Documents)\" width=\"843\" height=\"507\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-read-raw-json-documents.png 843w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-read-raw-json-documents-300x180.png 300w\" sizes=\"(max-width: 843px) 100vw, 843px\" \/><\/a><p id=\"caption-attachment-961\" class=\"wp-caption-text\">SSIS JSON Source &#8211; Read JSON (Raw Documents)<\/p><\/div>\n<h2><\/h2>\n<div id=\"attachment_962\" style=\"width: 749px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-update-mongodb-item-set-operator.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-962\" class=\"size-full wp-image-962\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-update-mongodb-item-set-operator.png\" alt=\"SSIS MongoDB Destination - Update MongoDB Array Item using $set update operator\" width=\"739\" height=\"469\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-update-mongodb-item-set-operator.png 739w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-update-mongodb-item-set-operator-300x190.png 300w\" sizes=\"(max-width: 739px) 100vw, 739px\" \/><\/a><p id=\"caption-attachment-962\" class=\"wp-caption-text\">SSIS MongoDB Destination &#8211; Update MongoDB Array Item using $set update operator<\/p><\/div>\n<h2>Insert MongoDB Array Item ($push \/ $addToSet Operator)<\/h2>\n<p>Now lets look at how to insert new item into existing Array. Lets say we already have\u00a0two orders for a customer and now we want to add new order. For this you can either use \u00a0<a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/push\/\" target=\"_blank\" rel=\"noopener\">$push operator<\/a> or <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/addToSet\/\" target=\"_blank\" rel=\"noopener\">$addToSet operator<\/a>. $push operator\u00a0doesn&#8217;t check for duplicate item so its little faster. If you wish to\u00a0skip append if item already exists (by matching all attributes) then use $addToSet operator.<\/p>\n<h3>Using Shell Command : Insert MongoDB Array Item (Append to array)<\/h3>\n<p>Here is the shell command which will push new item to the array<\/p>\n<pre class=\"lang:default decode:true \">db.MyCollection.update(\r\n\t{CustomerID:\"BOLID\"},\r\n\t{$push:{Orders: {\"OrderID\":202,\"ShipCountry\":\"USA\",\"ShipCity\":\"Atlanta\" } }},\r\n\t{upsert: false,multi: false}\r\n)<\/pre>\n<p>&nbsp;<\/p>\n<h3>Using Shell Command : Insert MongoDB Array Item at second level<\/h3>\n<p>Here is the shell command which will push new item to the array which is stored at second level e.g. { Orders : \u00a0[\u00a0{ Items : [ insert-here\u00a0] }\u00a0] }<\/p>\n<pre class=\"lang:default decode:true\">db.MyCollection.update(\r\n\t{CustomerID:\"BOLID\", \"Orders.OrderID\" : 202 },\r\n\t{$push:{ \"Orders.$.Items\" : {\"ProductID\":1001,\"Quantity\":3} } },\r\n\t{upsert: false,multi: false}\r\n)<\/pre>\n<h3>Using SSIS : Insert MongoDB Array Item at Second Level<\/h3>\n<p>Now lets look at some example how to Insert Items inside Orders array. Since it requires two JOIN columns to perform second level array insert you may need to add metadata for join.<\/p>\n<p>First step is create documents for update. There are atleast 4\u00a0ways you can create input documents for MongoDB Destination.<\/p>\n<ol>\n<li>You can use <a href=\"\/\/zappysys.com\/blog\/create-mongodb-documents-ssis-json-bson-load-update-insert-upsert-collection\/\" target=\"_blank\" rel=\"noopener\">JSON generator Transform to create documents for load process<\/a><\/li>\n<li>You can use <a href=\"\/\/zappysys.com\/blog\/export-json-from-sql-server-using-ssis\/\" target=\"_blank\" rel=\"noopener\">Export JSON Task to generate input documents<\/a> file and then use JSON Source to Read Documents (Check Output as Document option on JSON Source to read as RAW JSON)<\/li>\n<li>You can use JSON Source to feed direct JSON (This approach is demonstrated in the below example sceenshot)<\/li>\n<li>You can also use SQL query to output JSON Strings along with columns used for JOIN condition\n<pre class=\"lang:tsql decode:true\">select CustomerID, OrderID as 'Orders.$.OrderID', DOC = '{Orders.$.Items : {ItemID: 1, Qty: 5} }'<\/pre>\n<\/li>\n<\/ol>\n<p>To make it simple lets use #3 approach from above list. We will create few documents and insert New orders Items<\/p>\n<h4>Sample Document for MongoDB Collection<\/h4>\n<p>For testing purpose you can create MongoDB collection called test with following one document. As you see Items array is empty for both orders but once you run sample each will have 2 items.<\/p>\n<pre class=\"lang:js decode:true \">{\r\n    \"_id\" : ObjectId(\"58c01bee0610fea8ddda04b9\"),\r\n    \"CustomerID\" : \"ALFKI\",\r\n    \"Orders\" : [ \r\n        {\r\n            \"OrderID\" : 100,\r\n            \"Items\" : [ ]\r\n        }, \r\n        {\r\n            \"OrderID\" : 101,\r\n            \"Items\" : [ ]\r\n        }\r\n    ]\r\n}<\/pre>\n<p>Now lets look at how to\u00a0configure SSIS package<\/p>\n<p>&nbsp;<\/p>\n<h4>Step-1 : Create JSON Documents for Array Insert<\/h4>\n<p>Lets use JSON Source like below. Use following Sample JSON<\/p>\n<pre class=\"lang:js decode:true\">\/*Insert new items into order#100*\/\r\n{CustomerID:\"ALFKI\",\"Orders.$.OrderID\" : 100, Doc: \"{ \\\"Orders.$.Items\\\" : {ItemID: 1, Qty: 10} }\" }\r\n{CustomerID:\"ALFKI\",\"Orders.$.OrderID\" : 100, Doc: \"{ \\\"Orders.$.Items\\\" : {ItemID: 2, Qty: 11} }\" }\r\n\r\n\/*Insert new items into order#101*\/\r\n{CustomerID:\"ALFKI\",\"Orders.$.OrderID\" : 101, Doc: \"{ \\\"Orders.$.Items\\\" : {ItemID: 1, Qty: 20} }\" }\r\n{CustomerID:\"ALFKI\",\"Orders.$.OrderID\" : 101, Doc: \"{ \\\"Orders.$.Items\\\" : {ItemID: 2, Qty: 21} }\" }<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1064\" style=\"width: 990px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-second-level-array-update-push-insert-items-2nd.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1064\" class=\"size-full wp-image-1064\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-second-level-array-update-push-insert-items-2nd.png\" alt=\"Create Sample JSON Documents for MongoDB Array Update (2nd level array)\" width=\"980\" height=\"744\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-second-level-array-update-push-insert-items-2nd.png 980w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-second-level-array-update-push-insert-items-2nd-300x228.png 300w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><\/a><p id=\"caption-attachment-1064\" class=\"wp-caption-text\">Create Sample JSON Documents for MongoDB Array Update (2nd level array)<\/p><\/div>\n<h4>Step-2 : Configure MongoDB Destination for $push operation on Second level Array<\/h4>\n<p>Now lets connect source to Destination and configure MongoDB Destination. Select connection on first tab. Then On second tab change properties like below.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1065\" style=\"width: 620px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-second-level-array-update-push-.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1065\" class=\"size-full wp-image-1065\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-second-level-array-update-push-.png\" alt=\"Configure MongoDB Destination for second level array update (Insert item using $push update operator)\" width=\"610\" height=\"608\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-second-level-array-update-push-.png 610w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-second-level-array-update-push--150x150.png 150w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-second-level-array-update-push--300x300.png 300w\" sizes=\"(max-width: 610px) 100vw, 610px\" \/><\/a><p id=\"caption-attachment-1065\" class=\"wp-caption-text\">Configure MongoDB Destination for second level array update (Insert item using $push update operator)<\/p><\/div>\n<h4>Step-3 : Add missing JOIN column for Mapping<\/h4>\n<p>When you click on Mappings tab you will notice only root level columns are listed there for mapping but if you are JOINing based on Nested column found inside array then you have to add missing mapping column by hand like below screenshot. \u00a0In our case we Join by CustomerID and OrderID where OrderID is found in Orders array which is missing on mappings tab. So lets add it. Just make sure name new column using $ positional operator&#8230; e.g. Orders.$.OrderID \u00a0this will tell MongoDB that our OrderID column must be lookup under Array called Orders: [ \u00a0]\n<div id=\"attachment_1066\" style=\"width: 696px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-add-missing-columns-metadata-edit.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1066\" class=\"size-full wp-image-1066\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-add-missing-columns-metadata-edit.png\" alt=\"MongoDB Destination - Add missing metadata column for JOIN \" width=\"686\" height=\"694\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-add-missing-columns-metadata-edit.png 686w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-add-missing-columns-metadata-edit-297x300.png 297w\" sizes=\"(max-width: 686px) 100vw, 686px\" \/><\/a><p id=\"caption-attachment-1066\" class=\"wp-caption-text\">MongoDB Destination &#8211; Add missing metadata column for JOIN<\/p><\/div>\n<h4>Step-4 : Map JOIN columns and Input DOCUMENT<\/h4>\n<p>Now finally map all columns<\/p>\n<div id=\"attachment_1067\" style=\"width: 641px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-mappings-second-level-array-update-push.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1067\" class=\"size-full wp-image-1067\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-mappings-second-level-array-update-push.png\" alt=\"SSIS MongoDB Destination - Column Mappings\" width=\"631\" height=\"742\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-mappings-second-level-array-update-push.png 631w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-configure-mappings-second-level-array-update-push-255x300.png 255w\" sizes=\"(max-width: 631px) 100vw, 631px\" \/><\/a><p id=\"caption-attachment-1067\" class=\"wp-caption-text\">SSIS MongoDB Destination &#8211; Column Mappings<\/p><\/div>\n<h3>Using SSIS : Insert MongoDB Array Item (Append to array)<\/h3>\n<p>Now lets look at how to perform same operation to insert array item in SSIS using $push operator. In this case we will do little different than Update Item example ($set operator). First we have not included CustomerID as part of Input columns and we mapped it on Mapping Screen rather than supplying columns names in ColumnsForLookup property (On Component Properties Tab of Destination UI). If you are using JSON Generator Transform to generate your JSON then you have option to Hide\/Include certain columns part of your flow. Check Include column to downstream option if you want to use for JOIN column.<\/p>\n<p>Set following settings<\/p>\n<ul>\n<li>Set LoadOptions as below<br \/>\n<strong>op=$push;multi=true<\/strong><\/li>\n<li>Set Operation=Update<\/li>\n<li>Leave ColumnsForLookup as empty<\/li>\n<li>On the mappings tab map __DOCUMENT__ and CustomerID in the Target. If you don&#8217;t see CustomerID column in the mapping create atleast one sample doc in MongoDB Collection so metadata is detected.<\/li>\n<\/ul>\n<p>Download Sample for more detail.<\/p>\n<div id=\"attachment_966\" style=\"width: 958px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-generate-json-for-mongodb-array-item-insert.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-966\" class=\"size-full wp-image-966\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-generate-json-for-mongodb-array-item-insert.png\" alt=\"SSIS JSON Source - generate JSON for MongoDB Array Insert\" width=\"948\" height=\"516\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-generate-json-for-mongodb-array-item-insert.png 948w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-json-source-generate-json-for-mongodb-array-item-insert-300x163.png 300w\" sizes=\"(max-width: 948px) 100vw, 948px\" \/><\/a><p id=\"caption-attachment-966\" class=\"wp-caption-text\">SSIS JSON Source &#8211; generate JSON for MongoDB Array Insert<\/p><\/div>\n<div id=\"attachment_968\" style=\"width: 684px\" class=\"wp-caption alignnone\"><a href=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-insert-array-item-push-addtoset-operator.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-968\" class=\"size-full wp-image-968\" src=\"\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-insert-array-item-push-addtoset-operator.png\" alt=\"SSIS MongoDB Destination - Insert MongoDB Array Item (Use $push, or $addToSet operator)\" width=\"674\" height=\"436\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-insert-array-item-push-addtoset-operator.png 674w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/01\/ssis-mongodb-destination-insert-array-item-push-addtoset-operator-300x194.png 300w\" sizes=\"(max-width: 674px) 100vw, 674px\" \/><\/a><p id=\"caption-attachment-968\" class=\"wp-caption-text\">SSIS MongoDB Destination &#8211; Insert MongoDB Array Item (Use $push, or $addToSet operator)<\/p><\/div>\n<h2>Delete MongoDB Array Item ($pull operator)<\/h2>\n<p>If you wish to remove array item then you can use <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/operator\/update\/pull\/\" target=\"_blank\" rel=\"noopener\">$pull operator<\/a>. Only difference is rather than specifying two conditions in first argument&#8230; you just specify JOIN columns without array column (i.e. OrderID). To specify Array item condition you have to set inside $pull : {\u00a0&#8230; }<\/p>\n<h3>Using Shell Command for MongoDB\u00a0Delete Array Item (Remove by condition)<\/h3>\n<p>Below example shows how to remove OrderID=201 from Orders array for CustomerID=BOLID.<\/p>\n<pre class=\"lang:default decode:true\">db.MyCollection.update(\r\n\t{CustomerID:\"BOLID\"},\r\n\t{$pull:{Orders: {\"OrderID\":201} }},\r\n\t{upsert: false,multi: false}\r\n)<\/pre>\n<p>&nbsp;<\/p>\n<h3>Using SSIS for MongoDB\u00a0Delete Array Item<\/h3>\n<p>Now lets look at how to implement Delete logic for MongoDB Array Item in SSIS. As you see in below screenshots You have to modify following things<\/p>\n<ul>\n<li>Set ColumnsForLookup property to CustomerID (no need to add OrderID here because its part of input document)<\/li>\n<li>Set LoadOptions property to op=none;multi=false. op=none means we are supplying Update operator part of input document.<\/li>\n<\/ul>\n<p>Assume you have doc like below in MongoDB \u00a0and you like to remove Order#101 from array<\/p>\n<pre class=\"lang:js decode:true \">{\r\n\u00a0 \u00a0 \"_id\" : ObjectId(\"58c01bee0610fea8ddda04b9\"),\r\n\u00a0 \u00a0 \"ParentID\" : 1,\r\n\u00a0 \u00a0 \"Orders\" : [ \r\n\u00a0 \u00a0 \u00a0 \u00a0 100, \r\n\u00a0 \u00a0 \u00a0 \u00a0 101, \r\n\u00a0 \u00a0 \u00a0 \u00a0 102\r\n\u00a0 \u00a0 ]\r\n}\r\n<\/pre>\n<p>For this supply 2 columns from upstream<br \/>\ncol1 \u00a0= ParentID<br \/>\ncol2 \u00a0= DOCUMENT<\/p>\n<p>Document column should look like below<br \/>\n{Orders: 101}<\/p>\n<ol>\n<li>On MongoDB destination change LoadOptions property to \u00a0op=$pull;multi=true<\/li>\n<li>Change Operation to Update<\/li>\n<li>Map ParentID and DOCUMENT columns on Mapping screen<\/li>\n<li>Run the package &#8230; It will remove Order# 101 from array<\/li>\n<\/ol>\n<h2>Array Upsert &#8211; Update \/ Insert using Custom JOIN condition (such as $ne )<\/h2>\n<p>If you like to perform Upsert Operation on MongoDB Array Items then refer to below blog post.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"kVibThe8Ux\"><p><a href=\"https:\/\/zappysys.com\/blog\/update-insert-upsert-mongodb-array-items-ssis\/\">Update or Insert &#8211; Upsert MongoDB Array Items using SSIS<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"https:\/\/zappysys.com\/blog\/update-insert-upsert-mongodb-array-items-ssis\/embed\/#?secret=kVibThe8Ux\" data-secret=\"kVibThe8Ux\" width=\"600\" height=\"338\" title=\"&#8220;Update or Insert &#8211; Upsert MongoDB Array Items using SSIS&#8221; &#8212; ZappySys Blog\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusion<\/h2>\n<p>MongoDB integration can be challenging if you are new to NoSQL world. If you are using SSIS as your primary ETL tool then not to worry because <a href=\"\/\/zappysys.com\/products\/ssis-powerpack\/\" target=\"_blank\" rel=\"noopener\">SSIS PowerPack<\/a> can give super power needed to complete your project on time with drag and drop high performance connectors.<\/p>\n<p>Keywords: mongodb update array item | mongodb update array elements | mongodb update array documents | MongoDB $ operator | MongoDB update sub document items | MongoDB CRUD operations | MongoDB Bulk Updates | MongoDB bulk updates to array items<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In our previous blog post we saw how to perform Read and Write operations in MongoDB using SSIS (i.e. Bulk Update, Delete, Upsert, Insert). In this post we specifically focus on how to update MongoDB Array items \/ elements using SSIS. To make things simple to follow we have used JSON Source to produce [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2115,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,112,267],"tags":[46,12,92,148,90,4,83],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>Update MongoDB Array Items using SSIS | ZappySys Blog<\/title>\r\n<meta name=\"description\" content=\"Learn how to update MongoDB Array items inside SSIS. Also learn how to use various Update operators e.g. $set, $pull, $push, $addToSet to deal with array.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Update MongoDB Array Items using SSIS | ZappySys Blog\" \/>\r\n<meta property=\"og:description\" content=\"Learn how to update MongoDB Array items inside SSIS. Also learn how to use various Update operators e.g. $set, $pull, $push, $addToSet to deal with array.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/\" \/>\r\n<meta property=\"og:site_name\" content=\"ZappySys Blog\" \/>\r\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ZappySys\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2017-01-21T23:00:55+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2019-09-27T14:50:53+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"88\" \/>\r\n\t<meta property=\"og:image:height\" content=\"88\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"ZappySys\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/zappysys\/\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ZappySys\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/\",\"url\":\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/\",\"name\":\"Update MongoDB Array Items using SSIS | ZappySys Blog\",\"isPartOf\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png\",\"datePublished\":\"2017-01-21T23:00:55+00:00\",\"dateModified\":\"2019-09-27T14:50:53+00:00\",\"author\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\"},\"description\":\"Learn how to update MongoDB Array items inside SSIS. Also learn how to use various Update operators e.g. $set, $pull, $push, $addToSet to deal with array.\",\"breadcrumb\":{\"@id\":\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#primaryimage\",\"url\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png\",\"contentUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png\",\"width\":88,\"height\":88},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zappysys.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update MongoDB Array Items using SSIS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zappysys.com\/blog\/#website\",\"url\":\"https:\/\/zappysys.com\/blog\/\",\"name\":\"ZappySys Blog\",\"description\":\"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zappysys.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\",\"name\":\"ZappySys\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"caption\":\"ZappySys\"},\"sameAs\":[\"http:\/\/www.zappysys.com\/\",\"https:\/\/www.facebook.com\/ZappySys\/\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/\"],\"url\":\"https:\/\/zappysys.com\/blog\/author\/admin\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Update MongoDB Array Items using SSIS | ZappySys Blog","description":"Learn how to update MongoDB Array items inside SSIS. Also learn how to use various Update operators e.g. $set, $pull, $push, $addToSet to deal with array.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/","og_locale":"en_US","og_type":"article","og_title":"Update MongoDB Array Items using SSIS | ZappySys Blog","og_description":"Learn how to update MongoDB Array items inside SSIS. Also learn how to use various Update operators e.g. $set, $pull, $push, $addToSet to deal with array.","og_url":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/","og_site_name":"ZappySys Blog","article_author":"https:\/\/www.facebook.com\/ZappySys\/","article_published_time":"2017-01-21T23:00:55+00:00","article_modified_time":"2019-09-27T14:50:53+00:00","og_image":[{"width":88,"height":88,"url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png","type":"image\/png"}],"author":"ZappySys","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/zappysys\/","twitter_misc":{"Written by":"ZappySys","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/","url":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/","name":"Update MongoDB Array Items using SSIS | ZappySys Blog","isPartOf":{"@id":"https:\/\/zappysys.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#primaryimage"},"image":{"@id":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#primaryimage"},"thumbnailUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png","datePublished":"2017-01-21T23:00:55+00:00","dateModified":"2019-09-27T14:50:53+00:00","author":{"@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82"},"description":"Learn how to update MongoDB Array items inside SSIS. Also learn how to use various Update operators e.g. $set, $pull, $push, $addToSet to deal with array.","breadcrumb":{"@id":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#primaryimage","url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png","contentUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2017\/08\/mongodb-logo.png","width":88,"height":88},{"@type":"BreadcrumbList","@id":"https:\/\/zappysys.com\/blog\/update-mongodb-array-items-using-ssis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zappysys.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Update MongoDB Array Items using SSIS"}]},{"@type":"WebSite","@id":"https:\/\/zappysys.com\/blog\/#website","url":"https:\/\/zappysys.com\/blog\/","name":"ZappySys Blog","description":"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zappysys.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82","name":"ZappySys","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","caption":"ZappySys"},"sameAs":["http:\/\/www.zappysys.com\/","https:\/\/www.facebook.com\/ZappySys\/","https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/"],"url":"https:\/\/zappysys.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/952"}],"collection":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/comments?post=952"}],"version-history":[{"count":24,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/952\/revisions"}],"predecessor-version":[{"id":8075,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/952\/revisions\/8075"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media\/2115"}],"wp:attachment":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media?parent=952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/categories?post=952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/tags?post=952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}