<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:56:29 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-1243] New operator to update all matching items in an array</title>
                <link>https://jira.mongodb.org/browse/SERVER-1243</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #EEEEEE;border-color: #ccc;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelHeader&quot; style=&quot;border-bottom-width: 1px;border-bottom-color: #ccc;background-color: #6CB33F;&quot;&gt;&lt;b&gt;Issue Status as of Aug 11, 2017&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #EEEEEE;&quot;&gt;
&lt;p&gt;&lt;b&gt;FEATURE DESCRIPTION&lt;/b&gt;&lt;br/&gt;
MongoDB 3.5.12 extends all update modifiers to apply to all array elements or all array elements that match a predicate, specified in a new &lt;tt&gt;update&lt;/tt&gt; option &lt;tt&gt;arrayFilters&lt;/tt&gt;. This syntax also supports nested array elements.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;VERSIONS&lt;/b&gt;&lt;br/&gt;
This new feature is available starting with the MongoDB 3.5.12 development version, and included in the MongoDB 3.6 production version.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;OPERATION&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Update all documents in array&lt;/b&gt;&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.coll.update({}, {$set: {&#8220;a.$[].b&#8221;: 2}})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Input: {a: [{b: 0}, {b: 1}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Output: {a: [{b: 2}, {b: 2}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;&lt;b&gt;Update all matching documents in array&lt;/b&gt;&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.coll.update({}, {$set: {&#8220;a.$[i].b&#8221;: 2}}, {arrayFilters: [{&#8220;i.b&#8221;: 0}]})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Input: {a: [{b: 0}, {b: 1}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Output: {a: [{b: 2}, {b: 1}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;&lt;b&gt;Update all matching scalars in array&lt;/b&gt;&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.coll.update({}, {$set: {&#8220;a.$[i]&#8221;: 2}}, {arrayFilters: [{i: 0}]})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Input: {a: [0, 1]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Output: {a: [2, 1]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;&lt;b&gt;Update all matching documents in nested array&lt;/b&gt;&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.coll.update({}, {$set: {&#8220;a.$[i].c.$[j].d&#8221;: 2}}, {arrayFilters: [{&#8220;i.b&#8221;: 0}, {&#8220;j.d&#8221;: 0}]})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Input: {a: [{b: 0, c: [{d: 0}, {d: 1}]}, {b: 1, c: [{d: 0}, {d: 1}]}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Output: {a: [{b: 0, c: [{d: 2}, {d: 1}]}, {b: 1, c: [{d: 0}, {d: 1}]}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;&lt;b&gt;Update all scalars in array matching a logical predicate&lt;/b&gt;&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.coll.update({}, {$set: {&#8220;a.$[i]&#8221;: 2}}, {arrayFilters: [{$or: [{i: 0}, {i: 3}]}]})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Input: {a: [0, 1, 3]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Output: {a: [2, 1, 2]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Each array filter must be a predicate over a document with a single field name. Each array filter must be used in the update expression, and each array filter identifier &lt;tt&gt;$[&amp;lt;id&amp;gt;]&lt;/tt&gt; must have a corresponding array filter. &lt;tt&gt;&amp;lt;id&amp;gt;&lt;/tt&gt; must begin with a lowercase letter and not contain any special characters. There must not be two array filters with the same field name.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;IMPLEMENTATION DETAILS&lt;/b&gt;&lt;br/&gt;
The implementation of this feature involved a rewrite of the update system. Users can &lt;a href=&quot;https://jira.mongodb.org/issues/?jql=key%20in%20(SERVER-30401%2CSERVER-29912%2CSERVER-29840%2CSERVER-29819%2CSERVER-29762%2CSERVER-29162%2CSERVER-28778%2CSERVER-28777%2CSERVER-28776%2CSERVER-28775%2CSERVER-28774%2CSERVER-28773%2CSERVER-28772%2CSERVER-28771%2CSERVER-28770%2CSERVER-28769%2CSERVER-28768%2CSERVER-28767%2CSERVER-28766%2CSERVER-28765%2CSERVER-28764%2CSERVER-28763%2CSERVER-28762%2CSERVER-28761%2CSERVER-28759%2CSERVER-28758%2CSERVER-28757%2CSERVER-28621%2CSERVER-28577%2CSERVER-28576%2CSERVER-28575%2CSERVER-28478%2CSERVER-27738%2CSERVER-27089%2CSERVER-25717)&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;find all the related tickets here&lt;/a&gt;. The design document is attached.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h6&gt;&lt;a name=&quot;Originaldescription&quot;&gt;&lt;/a&gt;Original description&lt;/h6&gt;</description>
                <environment></environment>
        <key id="12164">SERVER-1243</key>
            <summary>New operator to update all matching items in an array</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="tess.avitabile@mongodb.com">Tess Avitabile</assignee>
                                    <reporter username="eltimn">Tim Nelson</reporter>
                        <labels>
                    </labels>
                <created>Wed, 16 Jun 2010 12:06:03 +0000</created>
                <updated>Thu, 6 Apr 2023 16:24:30 +0000</updated>
                            <resolved>Fri, 11 Aug 2017 21:02:00 +0000</resolved>
                                                    <fixVersion>3.5.12</fixVersion>
                                    <component>Querying</component>
                    <component>Write Ops</component>
                                        <votes>443</votes>
                                    <watches>291</watches>
                                                                                                                <comments>
                            <comment id="1663337" author="asya" created="Sat, 2 Sep 2017 14:10:45 +0000"  >&lt;p&gt;Note that to avoid examining every document and update only the ones that match &quot;YUAN&quot; you can include a query for the update statement - instead of  {}  use {&lt;tt&gt;&quot;accounts.currency&quot;:&quot;YUAN&quot;&lt;/tt&gt;}&lt;/p&gt;</comment>
                            <comment id="1662578" author="tess.avitabile" created="Fri, 1 Sep 2017 13:37:23 +0000"  >&lt;p&gt;The update command modifies the first matching document by default. To modify multiple documents, you must use the parameter &lt;tt&gt;multi:true&lt;/tt&gt;, which is documented &lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/db.collection.update/#multi-parameter&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="1661704" author="keyurpatel80@gmail.com" created="Thu, 31 Aug 2017 14:18:12 +0000"  >&lt;p&gt;Hi Asya,&lt;/p&gt;

&lt;p&gt;Sorry I was not clear. Yes it did modified first record available when I executed that Update command.&lt;/p&gt;

&lt;p&gt;but I want to update all the documents inside Accounts and for all the customers who has these accounts. Should not this command update all ?&lt;/p&gt;</comment>
                            <comment id="1661618" author="asya" created="Thu, 31 Aug 2017 12:04:54 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=keyurpatel80%40gmail.com&quot; class=&quot;user-hover&quot; rel=&quot;keyurpatel80@gmail.com&quot;&gt;keyurpatel80@gmail.com&lt;/a&gt; this would happen if no element of the &quot;accounts&quot; array had a subdocument matching &quot;currency&quot; &quot;YUAN&quot;.&lt;/p&gt;

&lt;p&gt;I ran your update statement on a document with such currency present and it worked fine:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.bank_data.update({},{$set: {&quot;accounts.$[i].currency&quot; : &quot;CAD&quot;}} ,{arrayFilters: [ {&quot;i.currency&quot;: &quot;YUAN&quot;}]})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;WriteResult({ &quot;nMatched&quot; : 1, &quot;nUpserted&quot; : 0, &quot;nModified&quot; : 1 })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// note that running it the second time doesn&apos;t match anything as all &quot;YUAN&quot; values were already changed to &quot;CAD&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.bank_data.update({},{$set: {&quot;accounts.$[i].currency&quot; : &quot;CAD&quot;}} ,{arrayFilters: [ {&quot;i.currency&quot;: &quot;YUAN&quot;}]})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;WriteResult({ &quot;nMatched&quot; : 1, &quot;nUpserted&quot; : 0, &quot;nModified&quot; : 0 })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="1661285" author="keyurpatel80@gmail.com" created="Thu, 31 Aug 2017 03:14:42 +0000"  >&lt;p&gt;Hi Tess,&lt;br/&gt;
Thanks I enabled the featureCompatibilityVersion to 3.6 by this command&lt;/p&gt;

&lt;p&gt;db.adminCommand(&lt;/p&gt;
{setFeatureCompatibilityVersion: &quot;3.6&quot;}
&lt;p&gt;)&lt;/p&gt;

&lt;p&gt;and I used this to update my all the documents which has currency as &quot;YUAN&quot; to &quot;CAD&quot; but it does not update all the documents. What is missing here ?&lt;/p&gt;

&lt;p&gt;&amp;gt; db.bank_data.update({},{$set: {&quot;accounts.$&lt;span class=&quot;error&quot;&gt;&amp;#91;i&amp;#93;&lt;/span&gt;.currency&quot; : &quot;CAD&quot;}} ,{arrayFilters: [&lt;/p&gt;
{&quot;i.currency&quot;: &quot;YUAN&quot;}
&lt;p&gt;]})&lt;br/&gt;
WriteResult(&lt;/p&gt;
{ &quot;nMatched&quot; : 1, &quot;nUpserted&quot; : 0, &quot;nModified&quot; : 0 }
&lt;p&gt;)&lt;/p&gt;
</comment>
                            <comment id="1661268" author="tess.avitabile" created="Thu, 31 Aug 2017 02:29:06 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=keyurpatel80%40gmail.com&quot; class=&quot;user-hover&quot; rel=&quot;keyurpatel80@gmail.com&quot;&gt;keyurpatel80@gmail.com&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;The &lt;tt&gt;featureCompatibilityVersion&lt;/tt&gt; must be 3.6 in order to use this feature. &lt;tt&gt;featureCompatibilityVersion&lt;/tt&gt; is a setting that we use to prevent usage of features that would break in a mixed-version cluster. The documentation page for &lt;tt&gt;featureCompatibilityVersion&lt;/tt&gt; is not yet available in 3.6, but it will look similar to our documentation page for &lt;tt&gt;featureCompatibilityVersion&lt;/tt&gt; in 3.4, which is &lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/setFeatureCompatibilityVersion/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. Essentially, when the &lt;tt&gt;featureCompatibilityVersion&lt;/tt&gt; is 3.6, that is a guarantee that all nodes in the cluster have a binary version of at least 3.6, so it is safe to use features that would break if there were 3.4 nodes in the cluster.&lt;/p&gt;

&lt;p&gt;You can set the &lt;tt&gt;featureCompatibilityVersion&lt;/tt&gt; to 3.6 by running&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.adminCommand({setFeatureCompatibilityVersion: &quot;3.6&quot;})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Then you will be able to use the new &lt;tt&gt;arrayFilters&lt;/tt&gt; features. Thanks for trying out the new feature!&lt;/p&gt;

&lt;p&gt;Tess&lt;/p&gt;</comment>
                            <comment id="1661244" author="keyurpatel80@gmail.com" created="Thu, 31 Aug 2017 01:36:33 +0000"  >&lt;p&gt;Thanks. I tried 3.5.12 Dev version but it still did not work. Looks like I need to wait for official 3.6 version.&lt;/p&gt;

&lt;p&gt;&amp;gt; db.bank_data.update({},{$set: {&quot;accounts.$&lt;span class=&quot;error&quot;&gt;&amp;#91;i&amp;#93;&lt;/span&gt;.currency&quot; : &quot;CAD&quot;}} ,{arrayFilters: [&lt;/p&gt;
{&quot;i.currency&quot;: &quot;YUAN&quot;}
&lt;p&gt;]})&lt;br/&gt;
WriteResult({&lt;br/&gt;
	&quot;nMatched&quot; : 0,&lt;br/&gt;
	&quot;nUpserted&quot; : 0,&lt;br/&gt;
	&quot;nModified&quot; : 0,&lt;br/&gt;
	&quot;writeError&quot; : &lt;/p&gt;
{
		&quot;code&quot; : 72,
		&quot;errmsg&quot; : &quot;The featureCompatibilityVersion must be 3.6 to use arrayFilters. See http://dochub.mongodb.org/core/3.6-feature-compatibility.&quot;
	}
&lt;p&gt;})&lt;/p&gt;</comment>
                            <comment id="1651161" author="ramon.fernandez" created="Fri, 18 Aug 2017 06:35:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=keyurpatel80%40gmail.com&quot; class=&quot;user-hover&quot; rel=&quot;keyurpatel80@gmail.com&quot;&gt;keyurpatel80@gmail.com&lt;/a&gt;, thanks for your interest in this new feature. MongoDB development release 3.5.12 is scheduled for publication next week (week of August 21st), so it should be available in the coming days.&lt;/p&gt;

&lt;p&gt;Please subscribe to &lt;a href=&quot;https://groups.google.com/forum/#!forum/mongodb-announce&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mongodb-announce&lt;/a&gt; to get notifications about MongoDB releases.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Ram&#243;n.&lt;/p&gt;</comment>
                            <comment id="1651080" author="keyurpatel80@gmail.com" created="Fri, 18 Aug 2017 01:38:56 +0000"  >&lt;p&gt;Hi,&lt;br/&gt;
Where I can download 3.5.12 for osx ? I tried binary page here. &lt;a href=&quot;https://www.mongodb.org/dl/osx&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.mongodb.org/dl/osx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;but there is no 3.5.12&lt;/p&gt;</comment>
                            <comment id="1602256" author="asya" created="Wed, 21 Jun 2017 02:32:51 +0000"  >&lt;p&gt;We were specifically looking for syntax that was not involved in the match expression.  In other words, the match specifies which document(s) is to be updated only.   The arrayFilters specifies which array elements are updated.  &lt;/p&gt;

&lt;p&gt;This solution addresses this as well as &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-831&quot; title=&quot;Positional Operator Matching Nested Arrays&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-831&quot;&gt;&lt;del&gt;SERVER-831&lt;/del&gt;&lt;/a&gt;. &lt;/p&gt;</comment>
                            <comment id="1602207" author="adambuczynski" created="Tue, 20 Jun 2017 23:40:21 +0000"  >&lt;p&gt;Hi Asya,&lt;/p&gt;

&lt;p&gt;Great to see progress on these array issues. Quick question though; from the posted examples it looks like this will work through options, rather than in the match portion of the update command. Is there a particular technical reason behind this decision?&lt;/p&gt;

&lt;p&gt;It would be more intuitive to handle this in the match portion, e.g. something along the lines of:&lt;/p&gt;

&lt;p&gt;db.coll.update(&lt;/p&gt;
{&apos;a.b&apos;: 0}
&lt;p&gt;, {$set: {&quot;a.$&lt;span class=&quot;error&quot;&gt;&amp;#91;i&amp;#93;&lt;/span&gt;.b&quot;: 2}});&lt;/p&gt;

&lt;p&gt;or if the `i` is needed:&lt;/p&gt;

&lt;p&gt;db.coll.update(&lt;/p&gt;
{&apos;a.$[i].b&apos;: 0}
&lt;p&gt;, {$set: {&quot;a.$&lt;span class=&quot;error&quot;&gt;&amp;#91;i&amp;#93;&lt;/span&gt;.b&quot;: 2}});&lt;/p&gt;

&lt;p&gt;Is there a technical limitation preventing a solution like this?&lt;/p&gt;</comment>
                            <comment id="1601731" author="asya" created="Tue, 20 Jun 2017 14:30:59 +0000"  >&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;We are currently making progress on a solution to this issue under &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27089&quot; title=&quot;Extend the update subsystem to support more expressive updates to array fields&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27089&quot;&gt;&lt;del&gt;SERVER-27089&lt;/del&gt;&lt;/a&gt;. Since this feature is still in development, and not yet switched on in a development release, we don&apos;t yet have documentation for how it will work. But to give you a quick preview, you will be able to update all matching values or subdocuments in an array as follows:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.coll.update({}, {$set: {&quot;a.$[i].b&quot;: 2}},  {arrayFilters: [{&quot;i.b&quot;: 0}]});&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Input: {a: [{b: 0}, {b: 1}, {b:0}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Output: {a: [{b: 2}, {b: 1}, {b:2}]}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;We will post a more formal update on &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27089&quot; title=&quot;Extend the update subsystem to support more expressive updates to array fields&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27089&quot;&gt;&lt;del&gt;SERVER-27089&lt;/del&gt;&lt;/a&gt; when this work is complete.&lt;/p&gt;

&lt;p&gt;Best,&lt;br/&gt;
Asya&lt;/p&gt;</comment>
                            <comment id="1596387" author="arkhee" created="Wed, 14 Jun 2017 08:15:07 +0000"  >&lt;p&gt;A way to implement this ticket would be to add an new &quot;$update&quot; command in the aggregation pipeline toolset.&lt;br/&gt;
This would be quite usefull many ways, by the way.&lt;/p&gt;

&lt;p&gt;Like the &quot;$out&quot; it should be the last step of the pipeline, it could also have the same syntax that regular &quot;update&quot; function but using data available in the aggregation stack instead, it could also work in a similar way to the &quot;$lookup&quot; stage.&lt;/p&gt;

&lt;p&gt;So for the example of the comments to update : I would do a $match, then $project the comment array, $unwind it then calling the new $update stage with three objects as a setting : the match part, the update part and the options part, and off course the $update would use the lines of the current result set to do updates, just like sql does.&lt;/p&gt;

&lt;p&gt;No retro-compatibility problem&lt;br/&gt;
Lots of use (and sorry I did not check if this request exists elsewhere)&lt;/p&gt;</comment>
                            <comment id="1596376" author="mmajidali40" created="Wed, 14 Jun 2017 07:50:06 +0000"  >&lt;p&gt;any update on this ticket ? i extremely need it for my project&lt;/p&gt;</comment>
                            <comment id="1523419" author="phamcuong" created="Tue, 14 Mar 2017 11:36:30 +0000"  >&lt;p&gt;Waiting !!!!!!!!!!&lt;/p&gt;</comment>
                            <comment id="1439194" author="nunov" created="Mon, 21 Nov 2016 17:23:42 +0000"  >&lt;p&gt;Help&lt;/p&gt;</comment>
                            <comment id="1438895" author="riteshagarwal100" created="Mon, 21 Nov 2016 11:38:27 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Can this feature be implemented, as we are using nodejs with mongoDb, and fetching large dataset on node thread is very expensive. If there can be a query where all the elements in an embedded array gets updated in one click, it would be a very useful query.&lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Ritesh&lt;/p&gt;</comment>
                            <comment id="1399622" author="bakti_pratama" created="Tue, 4 Oct 2016 12:54:02 +0000"  >&lt;p&gt;come on guys, you can do it&lt;/p&gt;</comment>
                            <comment id="1368342" author="jmccormick.me" created="Thu, 25 Aug 2016 20:57:29 +0000"  >&lt;p&gt;We understand that it&apos;s not a small change, but the fact that the platform is unable to do basic operations like this is super lame. Come on Mongo...&lt;/p&gt;</comment>
                            <comment id="1326478" author="adambuczynski" created="Mon, 18 Jul 2016 01:49:22 +0000"  >&lt;p&gt;Perhaps it&apos;s left unfixed intentionally, given how most MongoDB hosts charge you by the number of operations you perform... &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="1326461" author="blented@gmail.com" created="Mon, 18 Jul 2016 01:25:02 +0000"  >&lt;p&gt;Definitely disappointed as well.  As others have said, inability to do this goes against the entire idea of MongoDB.  I honestly thought something was broken when it didn&apos;t work, such a basic requirement.&lt;/p&gt;

&lt;p&gt;What do the developers propose as a workaround?  Save I have 5 comments and want to mark all as read, how would I write that query?  5 updates?&lt;/p&gt;</comment>
                            <comment id="1324420" author="vishallochan" created="Thu, 14 Jul 2016 18:39:43 +0000"  >&lt;p&gt;Yes I also felt, this is some thing missing in MongoDB&lt;/p&gt;</comment>
                            <comment id="1322229" author="joymufeng" created="Wed, 13 Jul 2016 05:34:26 +0000"  >&lt;p&gt;Yes, it&apos;s a must-have feature.&lt;/p&gt;</comment>
                            <comment id="1317728" author="adambuczynski" created="Fri, 8 Jul 2016 04:50:33 +0000"  >&lt;p&gt;Well, guess I&apos;m late to the party, but it&apos;s still very disappointing to find out that this issue hasn&apos;t been addressed in 6 &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/warning.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; years time.&lt;br/&gt;
Basically what has been said above:&lt;/p&gt;

&lt;p&gt;&amp;gt; As much as I love this database in general, it is embarrassing that this very fundamental and must-have feature (especially because this approach is recommended per design of mongo) is still not available after 5 years! It doesn&apos;t matter how you implement it, it will still be faster as to do it in the code.&lt;/p&gt;

&lt;p&gt;After reading a MongoDB blog about denormalization, I thought I&apos;d give it a go and see how it works. Everything was going great until I had to do an update in an array of denormalized data, and then I realized it&apos;s impossible to do with one query.&lt;/p&gt;

&lt;p&gt;This is really a must have feature, especially if you&apos;re recommending data denormalization in your blogs.&lt;/p&gt;

&lt;p&gt;PS: What&apos;s even more problematic, is that this doesn&apos;t just &lt;b&gt;not&lt;/b&gt; work for updating multiple items in one array, it also doesn&apos;t work for updating a &lt;b&gt;single&lt;/b&gt; item in an array for &lt;b&gt;multiple&lt;/b&gt; documents.&lt;/p&gt;</comment>
                            <comment id="1261850" author="sergiorykov" created="Wed, 11 May 2016 12:40:12 +0000"  >&lt;p&gt;Aggreed. From time to time have to do the same thing again and again - and watch what&apos;s new - Nothing changed. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;PMs of MongoDB&lt;/b&gt; - please consider to add it to nearest backlog or provide copy-paste&apos;able workaround and schedule it vNext + 1 release &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;. &lt;/p&gt;

&lt;p&gt;Base workaround uses optimistic locking &lt;a href=&quot;http://stackoverflow.com/questions/8505489/multiple-update-of-embedded-documents-properties&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://stackoverflow.com/questions/8505489/multiple-update-of-embedded-documents-properties&lt;/a&gt; , but it&apos;s not what I want to do repeatedly.&lt;/p&gt;</comment>
                            <comment id="1099137" author="salzamt" created="Thu, 26 Nov 2015 12:50:37 +0000"  >&lt;p&gt;In my opinion this missing feature breaks the the whole concept of MongoDB. Its meant to nest all information I need to the place where I need it, mostly as an array of subdocuments and what if this is for example user information inside comments. the user changes his image and one has to update all of those subdocuments inside of all comments. MongoDB also recommend this method in their conferences. But actually, if you do this, how is one supposed to update all those information afterwards if something changes?&lt;br/&gt;
As much as I love this database in general, it is embarrassing that this very fundamental and must-have feature (especially because this approach is recommended per design of mongo) is still not available after 5 years! It doesn&apos;t matter how you implement it, it will still be faster as to do it in the code.&lt;/p&gt;</comment>
                            <comment id="1015383" author="jmar777" created="Wed, 26 Aug 2015 20:11:15 +0000"  >&lt;blockquote&gt;&lt;p&gt;There is one possible workaround, which I didn&apos;t see mentioned, and that would be to read the full (matched) document, create a targeted update to the array elements to change, and then updating the document only if no other changes have been made to the field (array) being updated.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Unless I&apos;m missing something, this seems tantamount to read-update-write with two-phase commit, right?  Maybe it&apos;s not technically the same, but it provides equal burden on the client to ensure the correctness of the transaction. And, just like in two-phase commit, a real-world application of this technique would require retry logic if the array actually had been updated in the meantime, resulting in yet another query (on top of the initial one that already feels superfluous for an update operation).  And this becomes exponentially more problematic when updating highly contentious resources.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I would like to caution folks that if you have many documents with huge arrays, it&apos;s likely not an efficient schema design if you need to be querying and updating multiple array elements (especially if the array is indexed).&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I of course would have to agree with this, but this is ultimately a problem class that is independent of dataset size.&lt;/p&gt;

&lt;p&gt;Alright, obviously I&apos;m frustrated. After 5 years and a hundred comments, I guess this just is what it is. And I honestly don&apos;t want to belabor a bunch of points about transactions and atomicity that I know you (Asya) understand at a much deeper level than me.  It just seems like Mongo in general can get fuzzy on this topic.  I.e., there&apos;s a lot of advice to put things in separate documents if you need certain update semantics, and to put them into the same document if you need certain transaction semantics, and then things get kind of hand wavy if you need both.&lt;/p&gt;

&lt;p&gt;I get that no database can be &quot;all things to all users&quot;, but this one is perplexing. We&apos;re not talking about actually changing transactional or atomicity semantics at all. We simply need a way to utilize those existing semantics via an extension of the query language.  I&apos;m not claiming it&apos;s trivial, but it doesn&apos;t seem intractable, either.&lt;/p&gt;</comment>
                            <comment id="1015348" author="jaan@hebsdigital.com" created="Wed, 26 Aug 2015 19:36:25 +0000"  >&lt;p&gt;To be fair and square - I am disappointed. The feature has been up for several years, and I agree with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jacaetevha&quot; class=&quot;user-hover&quot; rel=&quot;jacaetevha&quot;&gt;jacaetevha&lt;/a&gt; that the community has done all they could to raise awareness.&lt;br/&gt;
Having many documents with huge arrays is the whole point of the noSQL Document schema. For key-value storage (or key-object) there are faster and more scalable systems out there.&lt;/p&gt;</comment>
                            <comment id="1015339" author="rainycode" created="Wed, 26 Aug 2015 19:30:07 +0000"  >&lt;p&gt;Thank you &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=asya&quot; class=&quot;user-hover&quot; rel=&quot;asya&quot;&gt;asya&lt;/a&gt; for your reply and insight into the challenges of this feature.&lt;/p&gt;</comment>
                            <comment id="1015331" author="jacaetevha" created="Wed, 26 Aug 2015 19:20:36 +0000"  >&lt;p&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/thumbs_up.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; to &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jmar777&quot; class=&quot;user-hover&quot; rel=&quot;jmar777&quot;&gt;jmar777&lt;/a&gt;&apos;s response. Honestly &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=asya&quot; class=&quot;user-hover&quot; rel=&quot;asya&quot;&gt;asya&lt;/a&gt;, at this point saying...&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;We do recognize the interest the community is expressing via this ticket and we do take this input into consideration during project planning.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;... seems like a blowoff. You may not have meant it that way, but after 5 years I&apos;m not sure what else you expect the &lt;em&gt;community&lt;/em&gt; to get from that. Perhaps the community does not have a loud enough voice in regards to this feature request.&lt;/p&gt;</comment>
                            <comment id="1015323" author="asya" created="Wed, 26 Aug 2015 19:15:54 +0000"  >&lt;p&gt;There&apos;ve been several workarounds mentioned on this thread. I want to point out that one of the desirable features of the workaround that&apos;s more important than performance must be &lt;b&gt;correctness&lt;/b&gt;. This means that you &lt;b&gt;must&lt;/b&gt; make sure that your query predicate is an exact match to the element you want to update (&quot;elements&quot; in the future).  Than means ensuring that your query predicate matches only elements you want to change and does &lt;b&gt;not&lt;/b&gt; match elements you don&apos;t want to change.&lt;/p&gt;

&lt;p&gt;There is one possible workaround, which I didn&apos;t see mentioned, and that would be to read the full (matched) document, create a targeted update to the array elements to change, and then updating the document only if no other changes have been made to the field (array) being updated. &lt;/p&gt;

&lt;p&gt;This has the advantage of &lt;b&gt;only&lt;/b&gt; updating the array if it has not been modified since we read it, which is key for atomicity and correctness in multithreaded environments &#8211; see the example that follows.&lt;/p&gt;

&lt;p&gt;Assuming our collection &lt;tt&gt;&quot;coll&quot;&lt;/tt&gt; has documents which have a field named &lt;tt&gt;&quot;arr&quot;&lt;/tt&gt; which is an array where &lt;tt&gt;&quot;a2&quot;&lt;/tt&gt; is an field that may have &lt;tt&gt;&quot;old&quot;&lt;/tt&gt; value which needs to be set to &lt;tt&gt;&quot;new&quot;&lt;/tt&gt;, the following is code in the shell to do that to a single document:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; docOrig=db.coll.findOne({&quot;_id&quot;:1, &quot;arr.a2&quot;:&quot;old&quot;},{&quot;arr&quot;:1})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	&quot;_id&quot; : 1,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	&quot;arr&quot; : [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		{&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a1&quot; : 0,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a2&quot; : &quot;old&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		},&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		{&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a1&quot; : 1,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a2&quot; : &quot;ok&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		},&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		{&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a1&quot; : 2,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a2&quot; : &quot;old&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		},&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		{&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a1&quot; : 3,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			&quot;a2&quot; : &quot;new&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	]&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; updatedFields={}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; for (i=0; i&amp;lt;docOrig.arr.length; i++) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     if (docOrig.arr[i].hasOwnProperty(&quot;a2&quot;) &amp;amp;&amp;amp; updatedFields.arr[i].a2==&quot;old&quot;) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;               updatedFields[&quot;arr.&quot;+i+&quot;.a2&quot;]=&quot;new&quot;; &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;} }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;new&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; db.coll.update(docOrig, {&quot;$set&quot;:updatedFields})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;WriteResult({ &quot;nMatched&quot; : 1, &quot;nUpserted&quot; : 0, &quot;nModified&quot; : 1 })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; print(tojsononeline(docOrig))&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{  &quot;_id&quot; : 1,  &quot;arr&quot; : [ { &quot;a1&quot; : 0, &quot;a2&quot; : &quot;old&quot; }, { &quot;a1&quot; : 1, &quot;a2&quot; : &quot;ok&quot; }, { &quot;a1&quot; : 2, &quot;a2&quot; : &quot;old&quot; }, { &quot;a1&quot; : 3, &quot;a2&quot; : &quot;new&quot; } ] }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; print(tojsononeline(db.coll.findOne({&quot;_id&quot;:1},{&quot;arr&quot;:1})))&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{  &quot;_id&quot; : 1,  &quot;arr&quot; : [ { &quot;a1&quot; : 0, &quot;a2&quot; : &quot;new&quot; }, { &quot;a1&quot; : 1, &quot;a2&quot; : &quot;ok&quot; }, { &quot;a1&quot; : 2, &quot;a2&quot; : &quot;new&quot; }, { &quot;a1&quot; : 3, &quot;a2&quot; : &quot;new&quot; } ] }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;The above reads in the array of the document (that needs multiple elements updated), iterates over the array while creating a single &quot;update&quot; (using &quot;$set&quot;) and then runs the update conditionally only if the document (technically, if the &quot;arr&quot; field of the document) has not been changed since we read it.&lt;/p&gt;

&lt;p&gt;There is a single atomic update which updates appropriate elements of the &lt;tt&gt;arr&lt;/tt&gt; array with new values.  Another approach could be constructed to create a totally new &lt;tt&gt;&quot;arr&quot;&lt;/tt&gt; field for the document and do an update that replaces the &lt;tt&gt;&quot;arr&quot;&lt;/tt&gt; field with a new array - depending on what percentage of array&apos;s fields are being changed, this may turn out to be more efficient in case where majority of array elements are being set to new value.&lt;/p&gt;

&lt;p&gt;I would like to caution folks that if you have many documents with huge arrays, it&apos;s likely not an efficient schema design if you need to be querying and updating multiple array elements (especially if the array is indexed).&lt;/p&gt;

&lt;p&gt;Asya&lt;/p&gt;</comment>
                            <comment id="1015287" author="jmar777" created="Wed, 26 Aug 2015 18:44:00 +0000"  >&lt;p&gt;&lt;em&gt;Edit: sorry, accidentally submitted prematurely.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;and in short is a matter of prioritization &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;5 years and two months later, that more-or-less was implicit at this point... &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;This really is a shame, though. The absence of multi-document, atomic transactions, often drive schema design towards storing data that requires atomic updates in a single document.  Even the &lt;a href=&quot;http://docs.mongodb.org/v3.0/core/write-operations-atomicity/#transaction-like-semantics&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;documentation&lt;/a&gt; suggests this:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Since a single document can contain multiple embedded documents, single-document atomicity is sufficient for many practical use cases.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;However, the utility of &quot;multiple embedded documents&quot; (especially in an array) is severely limited due to the lack of any reasonable utilities for mutating them.  This in turn requires read-update-write cycles, which ultimately requires two-phase commit logic being burdened on the consuming applications.  As much as I&apos;ve been a proponent for MongoDB over the years, I&apos;ve run into more and more situations where this specific issue has ultimately driven me to look elsewhere.&lt;/p&gt;

&lt;p&gt;I don&apos;t mean this to sound too ranty, but it can be difficult to work around MongoDB&apos;s generally cavalier approach to the transactional needs of applications, and it&apos;s honestly frustrating to wait 5 years just to hear &quot;it&apos;s hard&quot; and &quot;not a priority&quot;.&lt;/p&gt;</comment>
                            <comment id="1015224" author="asya" created="Wed, 26 Aug 2015 18:02:25 +0000"  >&lt;p&gt;Folks,&lt;/p&gt;

&lt;p&gt;We appreciate the challenge of maintaining applications using schemas with large arrays, especially with respect to updating many or all array elements, and we very much recognize the interest from the community around this ticket.&lt;/p&gt;

&lt;p&gt;Unfortunately, to implement such a new feature, there are major requirements:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;a specification for new language feature (like update modifiers or expressions), since we cannot break existing uses&lt;/li&gt;
	&lt;li&gt;should be included with support to match all array elements, as well was those matching a query&lt;/li&gt;
	&lt;li&gt;requests for support to update the last element(s) should be considered.&lt;/li&gt;
	&lt;li&gt;must support all existing update modifiers (correctly, and in a non-backwards-breaking way) including $rename, $set, $unset, $pull, $push, $bit...&lt;/li&gt;
	&lt;li&gt;must work efficiently with all arrays, including large ones having thousands of elements&lt;/li&gt;
	&lt;li&gt;cannot change current update semantics or behaviors which existing applications and deployments depend on (= non-backwards-breaking).&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In summary, adding this as a new feature is not trivial. It will require resources which are currently working on other projects, and in short is a matter of prioritization over other parts of the whole server.&lt;/p&gt;

&lt;p&gt;We do recognize the interest the community is expressing via this ticket and we do take this input into consideration during project planning.&lt;/p&gt;

&lt;p&gt;Asya Kamsky&lt;br/&gt;
Lead Product Manager&lt;br/&gt;
MongoDB Server&lt;/p&gt;</comment>
                            <comment id="1014928" author="lpg" created="Wed, 26 Aug 2015 14:42:53 +0000"  >&lt;p&gt;Agree with Fabio. This is a deal breaker when the proposed advantage of mongo is using nested fields in a performant manner. Other workarounds introduce too much risk.&lt;/p&gt;</comment>
                            <comment id="1009626" author="fabiosussetto" created="Wed, 19 Aug 2015 15:14:22 +0000"  >&lt;p&gt;Show stopper for me when I was evaluating mongodb for a project. An set of efficient operations to manipulate denormalised data is key when you need to decide relational vs non-relational. &lt;br/&gt;
It&apos;s worrying that this issue has been open for 5 years without any clear decision on this.&lt;br/&gt;
If you guys decide this is out of scope and you don&apos;t want to implement this, fine, but there should be a red warning in the docs saying this is a limitation.&lt;/p&gt;</comment>
                            <comment id="1008726" author="kayuobi" created="Tue, 18 Aug 2015 20:18:02 +0000"  >&lt;p&gt;Just started exploring MongoDB last week, and I run into this very quick&lt;/p&gt;</comment>
                            <comment id="998078" author="reini122" created="Thu, 6 Aug 2015 09:14:41 +0000"  >&lt;p&gt;I&apos;m too missing this feature as there is no acceptable workaround available.&lt;/p&gt;</comment>
                            <comment id="955238" author="hranjc1" created="Wed, 1 Jul 2015 00:07:28 +0000"  >&lt;p&gt;I just ran into this issue during my first time ever using a database. The use case for this is very evident. Please assign someone to this. It&apos;s been five years....&lt;/p&gt;</comment>
                            <comment id="954298" author="rajesh" created="Tue, 30 Jun 2015 09:25:34 +0000"  >&lt;p&gt;Really need this feature in MongoDB while doing bulk update&lt;/p&gt;</comment>
                            <comment id="950519" author="sergei bershadsky" created="Thu, 25 Jun 2015 14:06:06 +0000"  >&lt;p&gt;Really missing this feature&lt;/p&gt;</comment>
                            <comment id="942327" author="dvideby0" created="Tue, 16 Jun 2015 21:10:48 +0000"  >&lt;p&gt;Can someone from the Mongo team report when they think they will be able to assign someone to this issue? Please and Thank you!&lt;/p&gt;</comment>
                            <comment id="927165" author="d.sudhakar540" created="Fri, 29 May 2015 12:33:04 +0000"  >&lt;p&gt;The lack of support/workarounds on this from the mongodb team is ridiculous.&lt;br/&gt;
Updating more than one element in an array is clearly a common requirement.&lt;br/&gt;
and yet its been here for years as a minor issue. !!!&lt;/p&gt;</comment>
                            <comment id="891196" author="macheeus" created="Fri, 17 Apr 2015 03:38:40 +0000"  >&lt;p&gt;How to let Mongodb know it is such an important missing feature needed by many people. The array operation isn&apos;t powerful enough to handle use cases. Please seriously consider users needs.&lt;/p&gt;</comment>
                            <comment id="879367" author="bifter" created="Mon, 13 Apr 2015 08:16:05 +0000"  >&lt;p&gt;For me this is such an important core feature it seems very odd it hasn&apos;t been implemented yet.&lt;/p&gt;</comment>
                            <comment id="877115" author="pierrebaz" created="Thu, 9 Apr 2015 15:36:27 +0000"  >&lt;p&gt;Could be nice to have an operator like $$ or $all to update all the subdocs. Thanks for the priority update by the way.&lt;/p&gt;</comment>
                            <comment id="877109" author="demonodojo" created="Thu, 9 Apr 2015 15:32:57 +0000"  >&lt;p&gt;Priority changed! Thank you.&lt;/p&gt;</comment>
                            <comment id="875466" author="redmedical" created="Wed, 8 Apr 2015 06:50:31 +0000"  >&lt;p&gt;+1 We are ALL waiting for it. Just do it!&lt;/p&gt;</comment>
                            <comment id="875085" author="jaan@hebsdigital.com" created="Tue, 7 Apr 2015 19:52:53 +0000"  >&lt;p&gt;Almost 5 years in Feature request and still not implemented? Considering the # of votes and comments, this should be a Major priority.&lt;/p&gt;</comment>
                            <comment id="874332" author="ismetozalp" created="Tue, 7 Apr 2015 08:27:52 +0000"  >&lt;p&gt;+1000&lt;/p&gt;</comment>
                            <comment id="873270" author="juzerali" created="Mon, 6 Apr 2015 12:08:47 +0000"  >&lt;p&gt;+1&lt;/p&gt;</comment>
                            <comment id="846821" author="mk_trialfire" created="Mon, 9 Mar 2015 20:27:02 +0000"  >&lt;p&gt;+1 This is a major deficiency that needs to be addressed&lt;/p&gt;</comment>
                            <comment id="831800" author="gregaubert" created="Wed, 18 Feb 2015 17:13:39 +0000"  >&lt;p&gt;+1 This feature really needs to be implemented.&lt;/p&gt;</comment>
                            <comment id="829670" author="bj&#246;rn" created="Sun, 15 Feb 2015 21:01:12 +0000"  >&lt;p&gt;+1 I need this to update a document schema (introducing a new default field to all documents)&lt;/p&gt;</comment>
                            <comment id="827774" author="sbuljat" created="Thu, 12 Feb 2015 14:51:01 +0000"  >&lt;p&gt;+1 this is a must have...&lt;/p&gt;</comment>
                            <comment id="820635" author="jtmarmon" created="Tue, 3 Feb 2015 22:09:15 +0000"  >&lt;p&gt;+1 Use case:&lt;/p&gt;

&lt;p&gt;I have an array of embedded objects representing customers that we automatically contact. After contacting the customer, we update that embedded document and contact the next one some minutes later. If, however, somehow a second copy of that customer&apos;s identifier sneaks into the array, our application contacts this customer over and over until we manually stop it, because only the first copy of the customer&apos;s status is updates as &apos;contacted&apos;.&lt;/p&gt;

&lt;p&gt;I agree with the above sentiment - this should &lt;em&gt;already&lt;/em&gt; be implemented. It&apos;s a bug that needs to be fixed, not an optional new feature.&lt;/p&gt;</comment>
                            <comment id="809398" author="amine01" created="Wed, 21 Jan 2015 12:40:08 +0000"  >&lt;p&gt;How is this possible with a NoSQL database document oriented to leak this main feature?&lt;br/&gt;
Isn&apos;t a document oriented db mainly designed to avoid cross tables/collections queries (that even don&apos;t really exists with mognodb...)?&lt;br/&gt;
Isn&apos;t a document oriented db mainly designed to save multi-level data in a same document?&lt;br/&gt;
Is it really a P4?&lt;br/&gt;
what an incredible credibility wasting.&lt;br/&gt;
(same thing for the $ that only work for the first array level...)&lt;/p&gt;</comment>
                            <comment id="801772" author="mickdelaney" created="Sat, 10 Jan 2015 13:40:05 +0000"  >&lt;p&gt;+1 Basically the whole updating array feature is not usable as a result.  Its ridiculous. &lt;/p&gt;</comment>
                            <comment id="801696" author="agiannone0" created="Sat, 10 Jan 2015 00:13:01 +0000"  >&lt;p&gt;+1 - Not sure why this is a P4. It&apos;s may be a breaking change and may not be trivial, but surely those aren&apos;t the factors determining the priority&lt;/p&gt;</comment>
                            <comment id="766166" author="mickdelaney" created="Mon, 17 Nov 2014 18:45:45 +0000"  >&lt;p&gt;The lack of support/workarounds on this from the mongodb team is ridiculous.&lt;br/&gt;
Updating more than one element in an array is clearly a common requirement. &lt;/p&gt;

&lt;p&gt;and yet its been here for years as a minor issue. !!!&lt;/p&gt;</comment>
                            <comment id="721120" author="cvallance" created="Wed, 17 Sep 2014 18:53:02 +0000"  >&lt;p&gt;Just wanted to put my +1 here also... found myself trying to write the following:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.UserViewModels.update({ _id: 112372134004654084 }, { $set: { &quot;DevelopmentData.$.Name&quot;: { First: &quot;Charles&quot;, Last: &quot;Vallance&quot;, PrivacyFirst: &quot;C&quot;, PrivacyLast: &quot;Vallance&quot; } } })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Which obviously didn&apos;t work.&lt;/p&gt;</comment>
                            <comment id="697648" author="wyattisimo" created="Thu, 21 Aug 2014 00:32:35 +0000"  >&lt;p&gt;I came across this issue while trying to unset some fields in an array of subdocuments. I&apos;m posting my workaround here, in case anyone else might find it useful.&lt;/p&gt;

&lt;p&gt;You can do something similar to the following if &lt;b&gt;(a)&lt;/b&gt; you are &lt;em&gt;unsetting&lt;/em&gt; fields and know the length of the longest subdoc array, or &lt;b&gt;(b)&lt;/b&gt; you are &lt;em&gt;setting&lt;/em&gt; fields and all the subdoc arrays are exactly the same length.&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; subdoc_array_length = 20;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; unset_fields = {};&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; i=0; i &amp;lt; subdoc_array_length; i++) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  unset_fields[&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;subdoc_array.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; + i + &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;.field_to_unset&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;] = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.collection.update({ subdoc_array: { $exists: &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; } }, { $unset: unset_fields }, { multi: &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; });&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;If you don&apos;t know the subdoc array lengths, you can take the slightly slower boat. The following runs a separate update operation for each document after discovering the subdoc array length.&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.collection.find({ subdoc_array: { $exists: &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; } }).forEach(&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;(doc) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; unset_fields = {};&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; i=0; i &amp;lt; doc.subdoc_array.length; i++) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    unset_fields[&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;subdoc_array.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; + i + &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;.field_to_unset&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;] = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  db.collection.update({ _id: doc._id }, { $unset: unset_fields });&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;});&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;&lt;em&gt;&lt;b&gt;Disclaimer&lt;/b&gt;: These workarounds are &lt;ins&gt;slow&lt;/ins&gt;. The precise performance depends on the size of your collection, the number of docs you&apos;re updating, selection criteria and indexes, etc. Use at your own peril.&lt;/em&gt;&lt;/p&gt;</comment>
                            <comment id="696966" author="simon.mansfield@planglow.com" created="Wed, 20 Aug 2014 16:17:33 +0000"  >&lt;p&gt;I too, agree that this is a pretty critical missing feature. For myself to continue using MongoDB I really do think that this, along with a few similar key issues, need to be resolved... Urgently.&lt;/p&gt;</comment>
                            <comment id="690675" author="shahaf" created="Thu, 14 Aug 2014 15:24:28 +0000"  >&lt;p&gt;+1 I would find this very useful.&lt;/p&gt;

&lt;p&gt;My scenario...&lt;/p&gt;

&lt;p&gt;I have a bunch of documents, each with an array of items.  I&apos;m introducing a new feature that requires a new boolean flag with a default value of true on each item.  It would be nice if I could issue a single command to migrate my data, something like this:&lt;/p&gt;

&lt;p&gt;db.my_collection.update({}, { $set: &lt;/p&gt;
{ &apos;my_array.*.my_new_field&apos;: true }
&lt;p&gt; }, &lt;/p&gt;
{ multi: true }
&lt;p&gt;)&lt;/p&gt;

&lt;p&gt;Instead, it sounds like I&apos;ll need to write a script to iterate through all the records and update them &quot;manually&quot;.  It&apos;s doable, but it&apos;s more work than it should be.  I&apos;m used to being able to do bulk update operations like this in SQL.&lt;/p&gt;</comment>
                            <comment id="686059" author="kevinverse" created="Sun, 10 Aug 2014 05:13:48 +0000"  >&lt;p&gt;+1, Here is my thoughts to why it is critical and shouldn&apos;t be a P4:&lt;/p&gt;

&lt;p&gt;This isn&apos;t going to be another rant about lack of joins in MongoDB, but as a basis mongo doesn&apos;t have joins so it has to really provide a lot of upside to regular RDBMS.  In some cases it can for when join&apos;s aren&apos;t necessary, but for the vast majority of today&apos;s applications, joins are a critical piece of functionality that you can&apos;t really sidestep.  MongoDB has its ways of getting around that though, and currently the best solution to replicate join functionality is to denormalize deep data.  Albeit this isn&apos;t ideal, but it gets the job done for most cases at the cost of space efficiency.  However, complex and deep relationships are extremely common and without this basic querying &amp;amp; updating feature, you can&apos;t leverage much of the upside to MongoDB as the lack of this feature forces you to denormalize data that is greater than 1 level deep, regardless of whether you need to reindex that level of data as a separate collection.  This significantly challenges the viability of mongodb in a variety of surprisingly common cases.  Of course, you can blame the end user for choosing mongo as their db incorrectly, but the reality is that this discretionless usage has driven 10gen to its massive adoption today and supported the high demand for mongo.  If the company is to grow and expand to meet the scale of the current hype, it really needs to change its philosophy to cater to how the world uses databases on a fundamental level.  We can&apos;t jump 10 light years before first building the engine; and I would argue this feature is comparable to inventing the wrench to start screwing the first bolts onto the engine.&lt;/p&gt;</comment>
                            <comment id="675422" author="nevi_me" created="Tue, 29 Jul 2014 19:24:06 +0000"  >{I know I should post this in the mongo-dev or mongo-user group, but daheck
there&apos;s already a whole &quot;I need this otherwise I can&apos;t use MongoDB&quot; chain
here, so I might as well add on :)}

&lt;p&gt;I think one of the things that the MongoDB team should really look into is&lt;br/&gt;
enabling users to be able to perform more complex operations such as this&lt;br/&gt;
in the server, without a bandwidth round-trip to the application. The&lt;br/&gt;
problem of most of today&apos;s programmers (myself included) is that we have&lt;br/&gt;
the benefit of being able to throw processing powers at problems, instead&lt;br/&gt;
of finding more effective ways of performing operations. We rely on&lt;br/&gt;
software vendors to (rightly) make our lives easier, and sometimes lack the&lt;br/&gt;
ability to roll out some implementations ourselves. I believe that software&lt;br/&gt;
vendors should always consider at least creating channels for uses to&lt;br/&gt;
create their own &apos;functions&apos; because the reality is that not every client&apos;s&lt;br/&gt;
needs will be met without sacrificing usability and performance.&lt;/p&gt;

&lt;p&gt;A complex &apos;query&apos; in my app involves hitting MongoDB thousands of times a&lt;br/&gt;
second at worst, which means that if I ever get to 1000 users per second,&lt;br/&gt;
my &apos;replica set&apos; would need to be able to handle &amp;gt;1e6 q/s at worst. I chose&lt;br/&gt;
MongoDB due to its relative ease compared to the PostgreSQL &apos;black box&apos; and&lt;br/&gt;
ever-improving geo support, but PostgreSQL being flexible enough to be&lt;br/&gt;
programmed to perform complex operations without a bandwidth round-trip&lt;br/&gt;
cost still makes it a viable alternative.&lt;/p&gt;

&lt;p&gt;I personally don&apos;t know what&apos;s on the pipeline with MongoDB, but even if&lt;br/&gt;
JavaScript/V8 is an issue with server-side scripting (I understand that&lt;br/&gt;
indices aren&apos;t used, or something along those lines), at least consider&lt;br/&gt;
another language, even C++, so that users can be able to roll out update&lt;br/&gt;
statements like the one that everyone is complaining about. This would help&lt;br/&gt;
reduce the need to implement all sorts of things in the aggregation&lt;br/&gt;
framework.&lt;/p&gt;


</comment>
                            <comment id="675388" author="dennis@hoefakkr.nl" created="Tue, 29 Jul 2014 19:01:47 +0000"  >&lt;p&gt;@Albert Engelbrecht&lt;/p&gt;

&lt;p&gt;Yes that was clear to me, as i re-read your comment i read &quot;impossible&quot; :| Because of your sentence &quot;As of now it&apos;s impossible to update&quot; (and missing coffee) i was reading &quot;possible&quot; this morning so i thought i missed something.&lt;/p&gt;

&lt;p&gt;Sorry for the inconvenience &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/sad.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;For me it&apos;s totally unclear why this &quot;bug&quot; / &quot;missing feature&quot; is still absent and marked &quot;P4 - Minor&quot;, it is a MUST have feature imo.&lt;/p&gt;

&lt;p&gt;Is there any methode to &quot;up&quot; this issue ?&lt;/p&gt;</comment>
                            <comment id="674868" author="albert@suretybonds.com" created="Tue, 29 Jul 2014 13:45:45 +0000"  >&lt;p&gt;@Denniss Hoefakker&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;thead&gt;
			&lt;tr id=&quot;syntaxplugin_title&quot;&gt;
			&lt;td bgcolor=&quot;#f5f5f5&quot; style=&quot;font-family: Arial,sans-serif; color: #333; border-bottom: 1px solid #bbb; background-color: #f5f5f5 !important; font-weight: bold; line-height: 1em;&quot; &gt;
				&lt;p style=&quot;margin: 5px 10px; padding: 0;&quot;&gt;mongo.shell&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/thead&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; db.record.insert({field: [ { name : &quot;Steve&quot; }, { name : &quot;Ron&quot; } ] })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;WriteResult({ &quot;nInserted&quot; : 1 })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; db.record.insert({field: [ { name : &quot;Jim&quot; }, { name : &quot;carl&quot; } ] })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;WriteResult({ &quot;nInserted&quot; : 1 })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; db.record.update({}, { $set : { &apos;field.name&apos; : &quot;Carl&quot; }}, { multi: true })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;WriteResult({&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	&quot;nMatched&quot; : 0,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	&quot;nUpserted&quot; : 0,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	&quot;nModified&quot; : 0,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	&quot;writeError&quot; : {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		&quot;code&quot; : 16837,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		&quot;errmsg&quot; : &quot;cannot use the part (field of field.name) to traverse the element ({field: [ { name: \&quot;Steve\&quot; }, { name: \&quot;Ron\&quot; } ]})&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;})&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;So this means that it would be impossible to use the .update() syntax to set a specific field in all arrays in a single operator.&lt;/p&gt;</comment>
                            <comment id="674592" author="dennis@hoefakkr.nl" created="Tue, 29 Jul 2014 07:08:24 +0000"  >&lt;p&gt;@Albert Engelbrecht Could you please elaborate how to do that, i&apos;m unable to find it in documentation.&lt;/p&gt;</comment>
                            <comment id="668539" author="hmachalani" created="Wed, 23 Jul 2014 09:19:57 +0000"  >&lt;p&gt;wow totally thought it was a bug in my code &lt;del&gt;_&lt;/del&gt;&lt;/p&gt;</comment>
                            <comment id="625368" author="arkhee" created="Tue, 17 Jun 2014 23:36:15 +0000"  >&lt;p&gt;I think that, on a pure functionnal basis, this issue is closely related to issue n&#176; &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-831&quot; title=&quot;Positional Operator Matching Nested Arrays&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-831&quot;&gt;&lt;del&gt;SERVER-831&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Unfortunatelly priority for both tickets is no consistent (MAJOR vs MINOR)&lt;br/&gt;
What&apos;s the use of embedded arrays update if only the first occurence is updated ? Because most certainly, embedded arrays would very often need several updates at a time.&lt;br/&gt;
I&apos;d really love to see this very important feature implemented soon.&lt;/p&gt;</comment>
                            <comment id="617016" author="albert@suretybonds.com" created="Wed, 11 Jun 2014 14:26:13 +0000"  >&lt;p&gt;+1&lt;/p&gt;

&lt;p&gt;As of now it&apos;s impossible to update every element in the array in a single update, instead having to iterate over the array elements and $set them individually.&lt;/p&gt;</comment>
                            <comment id="615117" author="arkhee" created="Tue, 10 Jun 2014 07:39:00 +0000"  >&lt;p&gt;+1 this definitely IS a basic feature for any database !&lt;br/&gt;
Especially document database : since joints are not available there is more data redundancy, hence the multiple update is required to maintain the redundant data up to date (but not only).&lt;/p&gt;</comment>
                            <comment id="609796" author="arg20" created="Thu, 5 Jun 2014 16:46:03 +0000"  >&lt;p&gt;How come the priority for this is &quot;Minor - P4&quot;??? &lt;/p&gt;</comment>
                            <comment id="609559" author="beist@gmx.de" created="Thu, 5 Jun 2014 14:15:08 +0000"  >&lt;p&gt;wow, thats something i really thought mongodb is already capable of&lt;/p&gt;

&lt;p&gt;+1 $$ implementation! H-)&lt;/p&gt;</comment>
                            <comment id="597195" author="xres74" created="Tue, 27 May 2014 07:01:34 +0000"  >&lt;p&gt;+1 for this issue. Please implement this feature.&lt;/p&gt;</comment>
                            <comment id="584567" author="klodha" created="Thu, 15 May 2014 05:56:50 +0000"  >&lt;p&gt;+1 for $$ implementation. Using array_name.$.field_name work on only 1st matched element of array, while my requirement was to update more than 1 element in same record.&lt;/p&gt;

&lt;p&gt;Current work around doesn&apos;t seem better, given either have to trigger update individually in recursive (making multiple connection / queries) or using save method to update entire array (not an atomic operation). &lt;/p&gt;</comment>
                            <comment id="577258" author="dillonkrug" created="Thu, 8 May 2014 19:12:40 +0000"  >&lt;p&gt;+1 from me too.  Hopefully this will be scheduled soon, it&apos;s sorely needed.&lt;/p&gt;</comment>
                            <comment id="576791" author="ndwiga" created="Thu, 8 May 2014 13:31:03 +0000"  >&lt;p&gt;How many votes does it take for someone to take notice&lt;/p&gt;</comment>
                            <comment id="574425" author="pierrebaz" created="Tue, 6 May 2014 16:33:38 +0000"  >&lt;p&gt;+1 ! the power of MongoDB is embedding docs, but if you can&apos;t update them in a batch it looses it&apos;s value... please schedule this feature asap. BR&lt;/p&gt;</comment>
                            <comment id="574059" author="fergus.nelson" created="Tue, 6 May 2014 09:54:52 +0000"  >&lt;p&gt;Minor? Seriously? I am baffled that this still is not implemented&lt;/p&gt;</comment>
                            <comment id="570556" author="maopuppets" created="Fri, 2 May 2014 12:50:31 +0000"  >&lt;p&gt;The wait still continues...!!&lt;br/&gt;
Anybody with relatively faster way of all the alternate options of updating records?&lt;/p&gt;
</comment>
                            <comment id="560054" author="demonodojo" created="Wed, 23 Apr 2014 10:10:29 +0000"  >&lt;p&gt;Where is the easy workaround?&lt;/p&gt;</comment>
                            <comment id="551714" author="rwander" created="Wed, 16 Apr 2014 15:28:41 +0000"  >&lt;p&gt;This is very expected feature! Please implement it asap!&lt;/p&gt;</comment>
                            <comment id="516709" author="mercmobily" created="Sat, 15 Mar 2014 07:12:58 +0000"  >&lt;p&gt;If any of the MongoDB developers (or anybody else) feel like helping out, I would love to see if there is indeed a way to deal with my use case...&lt;br/&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/22420712/best-way-to-get-around-bug-1243-in-mongodb-use-positional-operator-to-update-a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://stackoverflow.com/questions/22420712/best-way-to-get-around-bug-1243-in-mongodb-use-positional-operator-to-update-a&lt;/a&gt;&lt;/p&gt;
</comment>
                            <comment id="516653" author="mercmobily" created="Sat, 15 Mar 2014 00:45:35 +0000"  >&lt;p&gt;How is this even considered &quot;minor&quot;?&lt;br/&gt;
I had no idea this was a problem. I have been scratching my head in front of failing tests that shouldn&apos;t fail, and eventually figured out that only one sub-record was being updated.&lt;br/&gt;
This is a &lt;em&gt;major&lt;/em&gt; issue. It must be possible to update more than one sub-record in one go. What&apos;s even worse, is that there is no clear, easy work-around to this. Running the update many times is horrific and possibly immensely expensive. Getting the full array is a joke.&lt;br/&gt;
Seriously.&lt;/p&gt;</comment>
                            <comment id="496969" author="fastest963" created="Tue, 11 Feb 2014 06:23:15 +0000"  >&lt;p&gt;Setting a field on all elements is not possible. Throws a &quot;can&apos;t append to array using string field name&quot; error.&lt;br/&gt;
You also cannot unset from all elements. Filed that separately because the lastErrorObject looks like it actually did: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12680&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/SERVER-12680&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="476574" author="mitar" created="Thu, 2 Jan 2014 20:07:26 +0000"  >&lt;p&gt;OK. But even setting a field on all elements of an array is not yet possible?&lt;/p&gt;

&lt;p&gt;And what I am saying is that I do not understand why there is a need for positional operator when you want to update more than one item in an array (and yes, not necessary all).&lt;/p&gt;</comment>
                            <comment id="476568" author="eggtree" created="Thu, 2 Jan 2014 19:58:55 +0000"  >&lt;p&gt;@Mitar&lt;br/&gt;
IIUC this issue is not specifically about setting a field on all elements of an array, which can be done as you describe. Again IIUC its more about setting a field on more than one element of an array.&lt;/p&gt;

&lt;p&gt;Look at &quot;TEST CASE 2 - UPDATE SPECIFIED ATTRIBUTE OF EACH MATCHED ARRAY ELEMENT FOR EACH MATCHED OBJECT:&quot; in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-1243?focusedCommentId=83185&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-83185&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/SERVER-1243?focusedCommentId=83185&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-83185&lt;/a&gt; for an example of only the first matching element of an array being updated.&lt;/p&gt;

&lt;p&gt;Perhaps a better name for this issue would be &quot;Use positional operator to update more than one item in an array&quot;&lt;/p&gt;</comment>
                            <comment id="469080" author="jhoffner" created="Wed, 11 Dec 2013 04:18:58 +0000"  >&lt;p&gt;+1. This is definitely not a minor issue.&lt;/p&gt;</comment>
                            <comment id="450606" author="mitar" created="Sun, 3 Nov 2013 05:56:25 +0000"  >&lt;p&gt;And why using &lt;tt&gt;$&lt;/tt&gt; at all when updating subdocuments in an array? So based on data from the ticket description, we could just be able to run:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;t.update( obj, { $set: {&apos;comments.votes&apos;: 1} }, false, true )&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;and this would set all &lt;tt&gt;votes&lt;/tt&gt; fields of all subdocuments of the &lt;tt&gt;comments&lt;/tt&gt; array. This would allow to use same syntax no matter if you have one subdocument you want to update or multiple in a array. It would mirror selecting documents where you can match fields in a subdocuments in the same way no matter if they are in the array or not.&lt;/p&gt;</comment>
                            <comment id="427767" author="muruga.temp" created="Wed, 18 Sep 2013 14:56:45 +0000"  >&lt;p&gt;I am completely surprised by the fact that this is classified as Minor.  It is a must have in any multi-update operations.  We are classifying MongoDB as big data and can&apos;t kill the performance by doing the same operation multiple times (as an work around).  Come on the MongoDB company, please fix this.&lt;/p&gt;

&lt;p&gt;After all, we are all supporting MongoDB big time.&lt;/p&gt;</comment>
                            <comment id="426568" author="paulswansea" created="Mon, 16 Sep 2013 23:40:29 +0000"  >&lt;p&gt;+1 Please review this, it&apos;s an essential feature, not a minor one! Having to iterate through all items in the document and update it, especially if there&apos;s thousands of documents is impractical.&lt;/p&gt;</comment>
                            <comment id="424814" author="elennaro" created="Fri, 13 Sep 2013 21:21:40 +0000"  >&lt;p&gt;Need this feature very much! For array of sub documents!&lt;/p&gt;</comment>
                            <comment id="398450" author="bgsosh@gmail.com" created="Thu, 8 Aug 2013 07:44:05 +0000"  >&lt;p&gt;Am surprised there is no support for this already, would also like to see this scheduled soon.&lt;/p&gt;</comment>
                            <comment id="397359" author="jacaetevha" created="Tue, 6 Aug 2013 22:27:20 +0000"  >&lt;p&gt;Come on 10gen! This is really a useful feature. The current work-around of reading back the documents and updating them individually stinks. What can we do as a community to raise the priority of this feature?&lt;/p&gt;</comment>
                            <comment id="326832" author="michael.henry@dealer.com" created="Thu, 2 May 2013 18:08:23 +0000"  >&lt;p&gt;+1 Would find this very useful.&lt;/p&gt;</comment>
                            <comment id="306825" author="jrothe" created="Fri, 5 Apr 2013 16:14:19 +0000"  >&lt;p&gt;Agree with above- surprised this isn&apos;t there, and the workarounds are painful and generally janky. An update would be appreciated.&lt;/p&gt;</comment>
                            <comment id="289929" author="jere.helenius" created="Fri, 15 Mar 2013 08:26:34 +0000"  >&lt;p&gt;Very much needed stuff.&lt;/p&gt;

&lt;p&gt;Any update on the status of this?&lt;/p&gt;</comment>
                            <comment id="256809" author="timnz" created="Sun, 3 Feb 2013 04:15:36 +0000"  >&lt;p&gt;Nuts, just plain nuts that we can&apos;t update all the items in an array with a single command.&lt;/p&gt;

&lt;p&gt;This is fundamental stuff.&lt;/p&gt;

&lt;p&gt;Has 10Gen advised why they don&apos;t support this yet?&lt;/p&gt;

</comment>
                            <comment id="235075" author="billw" created="Wed, 9 Jan 2013 13:35:11 +0000"  >&lt;p&gt;I also need it. I may remove the subdocument array collection into its own collection so that I can accomplish this.&lt;/p&gt;</comment>
                            <comment id="234038" author="niccottrell" created="Tue, 8 Jan 2013 11:25:11 +0000"  >&lt;p&gt;+1 Still need this.&lt;/p&gt;</comment>
                            <comment id="229595" author="fastest963" created="Thu, 3 Jan 2013 03:54:51 +0000"  >&lt;p&gt;Instead of $$, can we wrap the $set or whatever update operation we want to do in a $each or $all command? Something like:&lt;/p&gt;

&lt;p&gt;update({}, {$all: {&quot;my.array&quot;: {$set: {&quot;value&quot;: 1}}}});&lt;/p&gt;</comment>
                            <comment id="213080" author="marndt" created="Wed, 12 Dec 2012 14:37:06 +0000"  >&lt;p&gt;+1. Need this.&lt;/p&gt;</comment>
                            <comment id="206051" author="andrea.reginato" created="Tue, 4 Dec 2012 11:15:24 +0000"  >&lt;p&gt;+1 Really useful to speed up performances. Please do it.&lt;/p&gt;</comment>
                            <comment id="201220" author="alopezt" created="Wed, 28 Nov 2012 15:18:25 +0000"  >&lt;p&gt;+1. This will really help us. Please implement this feature.&lt;/p&gt;</comment>
                            <comment id="174801" author="eliocs" created="Mon, 15 Oct 2012 12:18:00 +0000"  >&lt;p&gt;+1 very useful, and the workarround is horrible. Please implement this feature.&lt;/p&gt;</comment>
                            <comment id="172865" author="jmar777" created="Tue, 9 Oct 2012 13:59:59 +0000"  >&lt;p&gt;+1 (especially for using a unique positional operator). There are a lot of use cases where a nested array of documents makes sense from a schema perspetive, but the inability to update them all atomically drives schema design in a different direction.&lt;/p&gt;</comment>
                            <comment id="164059" author="kv8" created="Thu, 13 Sep 2012 17:41:50 +0000"  >&lt;p&gt;This will be really useful to have. +1&lt;/p&gt;</comment>
                            <comment id="160977" author="veegee" created="Thu, 6 Sep 2012 01:06:10 +0000"  >&lt;p&gt;I can&apos;t believe this hasn&apos;t been implemented yet. How else does one update multiple objects in an array? Or is this the wrong way to design a schema?&lt;/p&gt;

&lt;p&gt;Possible workaround: just run the update command multiple times until all array items have been updated.&lt;/p&gt;

&lt;p&gt;Check by find() the original update condition until no more results are returned.&lt;/p&gt;</comment>
                            <comment id="149533" author="jakeorr" created="Wed, 1 Aug 2012 17:31:46 +0000"  >&lt;p&gt;This would be really useful in my current development.&lt;/p&gt;</comment>
                            <comment id="141696" author="shivani" created="Wed, 11 Jul 2012 02:32:46 +0000"  >&lt;p&gt;+1 ... really need this&lt;/p&gt;</comment>
                            <comment id="139936" author="spf13" created="Thu, 5 Jul 2012 16:07:38 +0000"  >&lt;p&gt;I&apos;ll second (or third) the idea of using a different token to stand for changing (or retrieving) all. Before reading this thread I thought the &apos;%&apos; sign made a lot of sense, but there&apos;s a reasonable argument here for the double &apos;$&apos;. All the same, I&apos;d prefer a single character to multiple.&lt;/p&gt;</comment>
                            <comment id="129973" author="mdietz198" created="Sun, 10 Jun 2012 23:33:39 +0000"  >&lt;p&gt;I like the idea of using $$ for the multiple selector.&lt;/p&gt;

&lt;p&gt;I did some digging in the code and found generally where the changes would need to be made, but it was definitely a non-trivial change, so I&apos;ve let it languish for awhile.  I&apos;m starting a new job that every so often has an open source hack day, so we&apos;ll see if that helps me get back to it.  Haven&apos;t had a lot of free time lately and with switching jobs that will probably be using most of my brain power for awhile.&lt;/p&gt;</comment>
                            <comment id="122472" author="diliopoulos" created="Wed, 23 May 2012 22:55:02 +0000"  >&lt;p&gt;+1 to keep this alive &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="88333" author="colinmollenhour" created="Tue, 14 Feb 2012 19:48:59 +0000"  >&lt;p&gt;Just ran into a scenario where I could really benefit from this. In order to prevent breaking backwards compatibility, how about using $$ for mult-updates and $ for single updates. So:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: #008200; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// Current syntax, updates only one embedded doc&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.foo.update({_id:1,&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;notes.by&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;grandma&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;},{$inc:{&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;notes.$.priority&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;:1}});&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: #008200; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// Proposed syntax, updates all matched embedded docs&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;db.foo.update({_id:1,&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;notes.by&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;grandma&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;},{$inc:{&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;notes.$$.priority&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;:1}});&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;This idea was inspired partially perhaps by Prototype (client-side JS framework) which uses $ for getting single dom elements by id and $$ for getting multiple dom elements by CSS selector.&lt;/p&gt;</comment>
                            <comment id="83540" author="mdietz198" created="Tue, 31 Jan 2012 04:13:32 +0000"  >&lt;p&gt;Thanks, Eliot.&lt;/p&gt;

&lt;p&gt;Regarding $rename:&lt;br/&gt;
I wasn&apos;t able to find a way with the latest code to do an update with $rename that used the positional operator.  I think the below line in update.cpp would prevent this:&lt;br/&gt;
uassert( 13487, &quot;$rename source may not be dynamic array&quot;, strstr( fieldName , &quot;.$&quot; ) == 0 );&lt;/p&gt;

&lt;p&gt;If you meant that after implementing this feature then  you&apos;d like $rename to be able to function on a dynamic array as part of this feature, I can keep that in mind while I&apos;m working on it.&lt;/p&gt;

&lt;p&gt;Regarding $push:&lt;br/&gt;
Below are two test cases for $push to an embedded array.  Sorry this is long, but I want to make sure I understand.&lt;/p&gt;

&lt;p&gt;I think the other operators would be analogous, unless I&apos;m missing something that makes $push or $pushAll special.&lt;/p&gt;

&lt;p&gt;TEST CASE 4 - PUSH TO EACH EMBEDDED ARRAY WHEN MATCH CRITERIA DOES NOT INCLUDE ARRAY&lt;br/&gt;
&amp;gt; t.find()&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752ecb790d449f2359060&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add love too&quot; }, { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;stir while adding&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        &quot;step&quot;: &quot;add flour to sugar&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add more love&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;stir until smooth&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;put down flour first&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;roll into circle&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple pie&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;&amp;gt; t.update({}, {$push:{&quot;instructions.$.notes&quot;:&lt;/p&gt;
{&quot;by&quot;:&quot;mark&quot;, &quot;text&quot;:&quot;love was not enough&quot;}
&lt;p&gt;}}, false, true)&lt;br/&gt;
CURRENT RESULT (ERROR WITH MESSAGE BELOW)&lt;br/&gt;
can&apos;t append to array using string field name &lt;span class=&quot;error&quot;&gt;&amp;#91;$&amp;#93;&lt;/span&gt;&lt;br/&gt;
DESIRED RESULT (SUCCESS RESULTING IN DATA BELOW)&lt;br/&gt;
&amp;gt; t.find()&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752ecb790d449f2359060&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add love too&quot; }, { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;stir while adding&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;:&quot;love was not enough&quot; } } } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;add flour to sugar&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add more love&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;:&quot;love was not enough&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;stir until smooth&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;put down flour first&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;:&quot;love was not enough&quot; } ]], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;roll into circle&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple pie&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;TEST CASE 5 - PUSH TO EMBEDDED ARRAY OF EACH MATCHED ARRAY, BUT NOT UNMATCHED ARRAYS&lt;br/&gt;
&amp;gt; t.find()&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752ecb790d449f2359060&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add love too&quot; }, { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;stir while adding&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        &quot;step&quot;: &quot;add flour to sugar&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add more love&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;stir until smooth&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;put down flour first&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;roll into circle&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple pie&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752f7b790d449f2359061&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;mix in love&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;smash bananas&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;step&quot;: &quot;add brown sugar&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;banana bread&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f27530ab790d449f2359062&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;easy&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;smash apples&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple sauce&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;&amp;gt; t.update(&lt;/p&gt;
{&quot;instructions.notes.by&quot;:&quot;grandma&quot;}
&lt;p&gt;, {$push:{&quot;instructions.$.notes&quot;:&lt;/p&gt;
{&quot;by&quot;:&quot;mark&quot;, &quot;text&quot;:&quot;love was not enough&quot;}
&lt;p&gt;}}, false, true)&lt;br/&gt;
CURRENT RESULT (SUCCESS RESULTING IN DATA BELOW)&lt;br/&gt;
&amp;gt; t.find()&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f27530ab790d449f2359062&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;easy&quot; } ],&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;smash apples&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple sauce&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752ecb790d449f2359060&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add love too&quot; }, { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;stir while adding&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;: &quot;love was not enough&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;add flour to sugar&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add more love&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;stir until smooth&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;put down flour first&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;roll into circle&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple pie&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752f7b790d449f2359061&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ {&quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;mix in love&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;: &quot;love was not enough&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;smash bananas&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;step&quot;: &quot;add brown sugar&quot; }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;banana bread&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;DESIRED RESULT (SUCCESS RESULTING IN DATA BELOW)&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f27530ab790d449f2359062&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;easy&quot; } ],&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;smash apples&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple sauce&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752ecb790d449f2359060&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add love too&quot; }, { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;stir while adding&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;: &quot;love was not enough&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;add flour to sugar&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;add more love&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;: &quot;love was not enough&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;stir until smooth&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ { &quot;by&quot;: &quot;mom&quot;, &quot;text&quot;: &quot;put down flour first&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;roll into circle&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;apple pie&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ &quot;_id&quot;: ObjectId(&quot;4f2752f7b790d449f2359061&quot;), &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;instructions&quot;: [&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;notes&quot;: [ {&quot;by&quot;: &quot;grandma&quot;, &quot;text&quot;: &quot;mix in love&quot; }, { &quot;by&quot;: &quot;mark&quot;, &quot;text&quot;: &quot;love was not enough&quot; } ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      &quot;step&quot;: &quot;smash bananas&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    { &quot;step&quot;: &quot;add brown sugar&quot; }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  ], &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;  &quot;name&quot;: &quot;banana bread&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="83192" author="eliot" created="Mon, 30 Jan 2012 03:50:58 +0000"  >&lt;p&gt;Need to consider all operators, not just $set.&lt;br/&gt;
i.e. could have an embedded array you are doing a $push too or a $rename&lt;/p&gt;

&lt;p&gt;This would definitely need to be an option, would break too many existing programs.&lt;/p&gt;</comment>
                            <comment id="83185" author="mdietz198" created="Mon, 30 Jan 2012 00:30:54 +0000"  >&lt;p&gt;I&apos;m new to MongoDB and thinking about trying to implement this feature. Here&apos;s a couple test cases that I think capture the changes for this feature:&lt;/p&gt;

&lt;p&gt;TEST CASE 1 - UPDATE SPECIFIED ATTRIBUTE OF EACH ARRAY ELEMENT FOR EACH MATCHED OBJECT:&lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;mark&quot;, &quot;votes&quot; : 3 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 1 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 2 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 8 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;br/&gt;
&amp;gt; t.update(&lt;/p&gt;
{&quot;title&quot;:&quot;first post&quot;}
&lt;p&gt;, {$set:{&quot;comments.$.votes&quot;:3}}, false, true)&lt;br/&gt;
CURRENT RESULT (ERROR WITH MESSAGE BELOW)&lt;br/&gt;
can&apos;t append to array using string field name &lt;span class=&quot;error&quot;&gt;&amp;#91;$&amp;#93;&lt;/span&gt;&lt;br/&gt;
DESIRED RESULT (SUCCESS WITH RESULTING DATA BELOW)&lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;mark&quot;, &quot;votes&quot; : 3 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 1 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 3 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 3 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;/p&gt;

&lt;p&gt;TEST CASE 2 - UPDATE SPECIFIED ATTRIBUTE OF EACH MATCHED ARRAY ELEMENT FOR EACH MATCHED OBJECT: &lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;mark&quot;, &quot;votes&quot; : 3 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 1 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 3 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 3 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;br/&gt;
&amp;gt; t.update(&lt;/p&gt;
{&quot;comments.votes&quot;:3}
&lt;p&gt;, {$set:{&quot;comments.$.votes&quot;:4}}, false, true)&lt;br/&gt;
CURRENT RESULT (SUCCESS RESULTING IN DATA BELOW)&lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;mark&quot;, &quot;votes&quot; : 4 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 1 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 4 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 3 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;br/&gt;
DESIRED RESULT (SUCCESS RESULTING IN DATA BELOW)&lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;mark&quot;, &quot;votes&quot; : 4 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 1 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 4 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 4 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;/p&gt;

&lt;p&gt;TEST CASE 3 - UPDATE SPECIFIED ATTRIBUTE OF EACH MATCHED ARRAY ELEMENT FOR EACH MATCHED OBJECT&lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 4 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 1 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 4 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 3 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;br/&gt;
&amp;gt; t.update(&lt;/p&gt;
{&quot;comments.by&quot;:&quot;joe&quot;}
&lt;p&gt;, {$set:{&quot;comments.$.votes&quot;:5}}, false, true)&lt;br/&gt;
CURRENT RESULT (SUCCESS RESULTING IN DATA BELOW)&lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 5 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 1 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 5 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 3 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;br/&gt;
DESIRED RESULT (SUCCESS RESULTING IN DATA BELOW)&lt;br/&gt;
&amp;gt; t.find()&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f256ec7a23cf8c9e2bce3d3&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 5 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 5 }
&lt;p&gt; ], &quot;title&quot; : &quot;second post&quot; }&lt;br/&gt;
{ &quot;_id&quot; : ObjectId(&quot;4f2569f7be16970bef9799d9&quot;), &quot;comments&quot; : [ &lt;/p&gt;
{ &quot;by&quot; : &quot;joe&quot;, &quot;votes&quot; : 5 }
&lt;p&gt;, &lt;/p&gt;
{ &quot;by&quot; : &quot;jane&quot;, &quot;votes&quot; : 3 }
&lt;p&gt; ], &quot;title&quot; : &quot;first post&quot; }&lt;/p&gt;

&lt;p&gt;Are there other test cases that I should consider?&lt;/p&gt;

&lt;p&gt;Some questions for the core contributers:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Should this feature be added as an option for the update command or should the existing update command be modified to perform this way?&lt;/li&gt;
	&lt;li&gt;If there is an option, do you have suggestions for the user facing update API?&lt;/li&gt;
	&lt;li&gt;Any tips or warnings on the code where this feature will be implemented? If not, I&apos;ll look on my own and we can see what I come up with.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="82321" author="omissis" created="Wed, 25 Jan 2012 17:49:17 +0000"  >&lt;p&gt;+1&lt;/p&gt;</comment>
                            <comment id="82152" author="nibblebot" created="Tue, 24 Jan 2012 23:40:41 +0000"  >&lt;p&gt;+1 workaround for now is something like this (which sucks because it&apos;s recursive)&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; convertDirectMessages(id, cb) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			Conversation.collection.update(&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;				{&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&apos;messages.context&apos;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&apos;direct&apos;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;				{$set:{&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&apos;messages.$.context&apos;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;: {type:&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&apos;direct&apos;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}}}, &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;				{safe:&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;, multi:&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;},&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;				&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;(err, updated) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;					&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; (err) &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; cb(err);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;					&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; (updated) &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; convertDirectMessages(id, cb);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;					cb();&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;				}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;			);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		convertDirectMessages(posted._id, &lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="81817" author="baggz" created="Mon, 23 Jan 2012 22:07:55 +0000"  >&lt;p&gt;+1&lt;/p&gt;</comment>
                            <comment id="61576" author="msayapin" created="Thu, 20 Oct 2011 10:04:50 +0000"  >&lt;p&gt;Badly need it for views-by-tags data accumulation.&lt;/p&gt;</comment>
                            <comment id="61368" author="dkrusenstrahle" created="Wed, 19 Oct 2011 12:04:01 +0000"  >&lt;p&gt;+1 It is bad that this has not already been implemented!&lt;/p&gt;</comment>
                            <comment id="59752" author="dperezrada" created="Tue, 11 Oct 2011 13:30:04 +0000"  >&lt;p&gt;+1 I also need this.&lt;/p&gt;</comment>
                            <comment id="55801" author="ayuhamaro" created="Thu, 22 Sep 2011 03:24:22 +0000"  >&lt;p&gt;This would be very useful, upvoted + 1&lt;/p&gt;</comment>
                            <comment id="51413" author="pekkaj" created="Tue, 30 Aug 2011 10:24:41 +0000"  >&lt;p&gt;This would be a very nice feature indeed. Any plans for this?&lt;/p&gt;</comment>
                            <comment id="29222" author="ghogan" created="Mon, 18 Apr 2011 17:57:10 +0000"  >&lt;p&gt;In lieu of a prompt implementation of this I would really appreciate a common work around.  Currently I am trying to update an array of embedded documents in a conversation style document where each persons display name is stored with their comment as part of a user summary.  If I want to update their first name (for example) I would like to be able to execute this statement.&lt;/p&gt;

&lt;p&gt;db.NewsFeed.update( {&quot;comments&quot;:{&quot;$elemMatch&quot;: &lt;/p&gt;
{ &quot;fromUserSummary.id&quot;:&quot;4d9f48ffb7e89d85f4e3d913&quot;}
&lt;p&gt; } }, { &quot;$set&quot;: &lt;/p&gt;
{ &quot;comments.$.fromUserSummary.firstName&quot;:&quot;Frankie&quot; }
&lt;p&gt; }, null, &lt;/p&gt;
{&quot;multi&quot;:1}
&lt;p&gt; )&lt;/p&gt;

&lt;p&gt;But this only update the name in the first instance of the comments array.  Currently I am planning to recurse this statement until I find no matching instances for the find.  Other ideas are appreciated.&lt;/p&gt;
</comment>
                            <comment id="29181" author="axlfu" created="Mon, 18 Apr 2011 02:26:41 +0000"  >&lt;p&gt;just matched items should be update.&lt;/p&gt;</comment>
                            <comment id="28471" author="hiroprot" created="Sat, 9 Apr 2011 00:48:45 +0000"  >&lt;p&gt;This would be very useful, upvoted&lt;/p&gt;</comment>
                            <comment id="26672" author="shingara" created="Thu, 24 Mar 2011 13:42:17 +0000"  >&lt;p&gt;I agree with this feature. It&apos;s can be better to have that.&lt;/p&gt;

&lt;p&gt;I do a little script to see what happen now if we use the $&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://gist.github.com/885015&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/885015&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="332607">SERVER-27089</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="43910">SERVER-6399</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="11615">SERVER-828</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="110377">SERVER-12680</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="380486">SERVER-29065</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="381409">SERVER-29101</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="214724">SERVER-19278</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="163156" name="Design Array updates.pdf" size="301311" author="tess.avitabile@mongodb.com" created="Fri, 11 Aug 2017 21:01:33 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>130.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 24 Mar 2011 13:42:17 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 23 weeks, 4 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-6399'>SERVER-6399</a></s>, <s><a href='https://jira.mongodb.org/browse/WRITING-1414'>WRITING-1414</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-27089'>SERVER-27089</a></s>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 23 weeks, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>adambuczynski</customfieldvalue>
            <customfieldvalue>albert@suretybonds.com</customfieldvalue>
            <customfieldvalue>alopezt</customfieldvalue>
            <customfieldvalue>agiannone0</customfieldvalue>
            <customfieldvalue>elennaro</customfieldvalue>
            <customfieldvalue>Amine01</customfieldvalue>
            <customfieldvalue>andrea.reginato</customfieldvalue>
            <customfieldvalue>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>bakti_pratama</customfieldvalue>
            <customfieldvalue>billw</customfieldvalue>
            <customfieldvalue>Bj&#246;rn</customfieldvalue>
            <customfieldvalue>cvallance</customfieldvalue>
            <customfieldvalue>hranjc1</customfieldvalue>
            <customfieldvalue>omissis</customfieldvalue>
            <customfieldvalue>colinmollenhour</customfieldvalue>
            <customfieldvalue>shingara</customfieldvalue>
            <customfieldvalue>dkrusenstrahle</customfieldvalue>
            <customfieldvalue>dperezrada</customfieldvalue>
            <customfieldvalue>dennis@hoefakkr.nl</customfieldvalue>
            <customfieldvalue>dillonkrug</customfieldvalue>
            <customfieldvalue>diliopoulos</customfieldvalue>
            <customfieldvalue>xres74</customfieldvalue>
            <customfieldvalue>eggtree</customfieldvalue>
            <customfieldvalue>eliocs</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>fabiosussetto</customfieldvalue>
            <customfieldvalue>fergus.nelson</customfieldvalue>
            <customfieldvalue>bifter</customfieldvalue>
            <customfieldvalue>baggz</customfieldvalue>
            <customfieldvalue>axlfu</customfieldvalue>
            <customfieldvalue>arg20</customfieldvalue>
            <customfieldvalue>ghogan</customfieldvalue>
            <customfieldvalue>blented@gmail.com</customfieldvalue>
            <customfieldvalue>gregaubert</customfieldvalue>
            <customfieldvalue>hmachalani</customfieldvalue>
            <customfieldvalue>ismetozalp</customfieldvalue>
            <customfieldvalue>jaan@hebsdigital.com</customfieldvalue>
            <customfieldvalue>jhoffner</customfieldvalue>
            <customfieldvalue>jakeorr</customfieldvalue>
            <customfieldvalue>fastest963</customfieldvalue>
            <customfieldvalue>wyattisimo</customfieldvalue>
            <customfieldvalue>jtmarmon</customfieldvalue>
            <customfieldvalue>jacaetevha</customfieldvalue>
            <customfieldvalue>jere.helenius</customfieldvalue>
            <customfieldvalue>jmar777</customfieldvalue>
            <customfieldvalue>redmedical</customfieldvalue>
            <customfieldvalue>jmccormick.me</customfieldvalue>
            <customfieldvalue>demonodojo</customfieldvalue>
            <customfieldvalue>jrothe</customfieldvalue>
            <customfieldvalue>nibblebot</customfieldvalue>
            <customfieldvalue>joymufeng</customfieldvalue>
            <customfieldvalue>juzerali</customfieldvalue>
            <customfieldvalue>kv8</customfieldvalue>
            <customfieldvalue>Kevinverse</customfieldvalue>
            <customfieldvalue>keyurpatel80@gmail.com</customfieldvalue>
            <customfieldvalue>kayuobi</customfieldvalue>
            <customfieldvalue>klodha</customfieldvalue>
            <customfieldvalue>beist@gmx.de</customfieldvalue>
            <customfieldvalue>lpg</customfieldvalue>
            <customfieldvalue>mmajidali40</customfieldvalue>
            <customfieldvalue>mdietz198</customfieldvalue>
            <customfieldvalue>ayuhamaro</customfieldvalue>
            <customfieldvalue>hiroprot</customfieldvalue>
            <customfieldvalue>mk_trialfire</customfieldvalue>
            <customfieldvalue>marndt</customfieldvalue>
            <customfieldvalue>michael.henry@dealer.com</customfieldvalue>
            <customfieldvalue>mickdelaney</customfieldvalue>
            <customfieldvalue>msayapin</customfieldvalue>
            <customfieldvalue>muruga.temp</customfieldvalue>
            <customfieldvalue>ndwiga</customfieldvalue>
            <customfieldvalue>nevi_me</customfieldvalue>
            <customfieldvalue>niccottrell</customfieldvalue>
            <customfieldvalue>RainyCode</customfieldvalue>
            <customfieldvalue>mitar</customfieldvalue>
            <customfieldvalue>nunov</customfieldvalue>
            <customfieldvalue>paulswansea</customfieldvalue>
            <customfieldvalue>pekkaj</customfieldvalue>
            <customfieldvalue>phamcuong</customfieldvalue>
            <customfieldvalue>pierrebaz</customfieldvalue>
            <customfieldvalue>Rajesh</customfieldvalue>
            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>
            <customfieldvalue>vishallochan</customfieldvalue>
            <customfieldvalue>reini122</customfieldvalue>
            <customfieldvalue>salzamt</customfieldvalue>
            <customfieldvalue>dvideby0</customfieldvalue>
            <customfieldvalue>riteshagarwal100</customfieldvalue>
            <customfieldvalue>rwander</customfieldvalue>
            <customfieldvalue>maopuppets</customfieldvalue>
            <customfieldvalue>bgsosh@gmail.com</customfieldvalue>
            <customfieldvalue>Sergei Bershadsky</customfieldvalue>
            <customfieldvalue>sergiorykov</customfieldvalue>
            <customfieldvalue>shahaf</customfieldvalue>
            <customfieldvalue>shivani</customfieldvalue>
            <customfieldvalue>simon.mansfield@planglow.com</customfieldvalue>
            <customfieldvalue>spf13</customfieldvalue>
            <customfieldvalue>sbuljat</customfieldvalue>
            <customfieldvalue>d.sudhakar540</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
            <customfieldvalue>eltimn</customfieldvalue>
            <customfieldvalue>timnz</customfieldvalue>
            <customfieldvalue>mercmobily</customfieldvalue>
            <customfieldvalue>veegee</customfieldvalue>
            <customfieldvalue>macheeus</customfieldvalue>
            <customfieldvalue>Arkhee</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpl9b:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hra1p3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6301</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11861" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>User Summary</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11858"><![CDATA[Completed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrj0cf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>