<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:50:24 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-38909] Permit empty update modifiers, treating as a no-op rather than an error</title>
                <link>https://jira.mongodb.org/browse/SERVER-38909</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;As a few people have mentioned on&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12266&quot; title=&quot;Update no longer allows empty modifier objects&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12266&quot;&gt;&lt;del&gt;SERVER-12266&lt;/del&gt;&lt;/a&gt;, the change to throw errors on empty updates is highly disruptive and has kept me from updating for a long time. I&apos;m finally in a position in which I need to move to a more recent version of MongoDB and have followed the lead of others in writing an application layer that detects empty patches and aborts the call to MongoDB in those cases. But, in doing so, I&apos;m struck by the absurdity of the application needing to include code for that. Surely it would be much more efficient to implement such functionality within MongoDB, perhaps enabled by a run-time flag? Or perhaps a default, and disabled only via a run-time flag, since I&apos;m sure that the people who want empty patches to work vastly outnumber those who want them to fail. I guess that this could also be a client option.&lt;/p&gt;

&lt;p&gt;An action triggered via an option on a patch request to a database-driven service is a very common thing. The success of the operation is seldom desired to be contingent on the presence of patch data, and there are probably millions of lines of code in the world that work around Mongo&apos;s inconsistent treatment of empty and non-empty patches. It would be great to be able to remove them.&lt;/p&gt;</description>
                <environment></environment>
        <key id="668209">SERVER-38909</key>
            <summary>Permit empty update modifiers, treating as a no-op rather than an error</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="13201">Fixed</resolution>
                                        <assignee username="mindaugas.malinauskas@mongodb.com">Mindaugas Malinauskas</assignee>
                                    <reporter username="frank.trampe">Frank Trampe</reporter>
                        <labels>
                            <label>neweng</label>
                    </labels>
                <created>Wed, 9 Jan 2019 15:38:21 +0000</created>
                <updated>Sun, 29 Oct 2023 22:25:17 +0000</updated>
                            <resolved>Tue, 11 Aug 2020 13:56:28 +0000</resolved>
                                    <version>4.1.6</version>
                                    <fixVersion>4.7.0</fixVersion>
                    <fixVersion>4.0.25</fixVersion>
                    <fixVersion>4.2.15</fixVersion>
                    <fixVersion>4.4.7</fixVersion>
                                    <component>Write Ops</component>
                                        <votes>0</votes>
                                    <watches>15</watches>
                                                                                                                <comments>
                            <comment id="3844727" author="xgen-internal-githook" created="Thu, 27 May 2021 14:22:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;}
&lt;p&gt;Message:  &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38909&quot; title=&quot;Permit empty update modifiers, treating as a no-op rather than an error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38909&quot;&gt;&lt;del&gt;SERVER-38909&lt;/del&gt;&lt;/a&gt; Permit empty update modifiers, treating as a no-op rather than an error&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 96bc79c2fa95e40a917c71b4120257f8dca038d0)&lt;br/&gt;
Branch: v4.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e3cd5569e4fedc7e3c0741712af5293f72c416da&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e3cd5569e4fedc7e3c0741712af5293f72c416da&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3843110" author="xgen-internal-githook" created="Wed, 26 May 2021 21:38:35 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;}
&lt;p&gt;Message:  &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38909&quot; title=&quot;Permit empty update modifiers, treating as a no-op rather than an error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38909&quot;&gt;&lt;del&gt;SERVER-38909&lt;/del&gt;&lt;/a&gt; Permit empty update modifiers, treating as a no-op rather than an error&lt;/p&gt;

&lt;p&gt;(cherry picked from commit ad51c2da0567585391d9e02529d4a495aa460c4d)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6e29afb9d9b53fd3c6a8187d9af8f77948f69832&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6e29afb9d9b53fd3c6a8187d9af8f77948f69832&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3839875" author="xgen-internal-githook" created="Tue, 25 May 2021 21:26:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;}
&lt;p&gt;Message:  &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38909&quot; title=&quot;Permit empty update modifiers, treating as a no-op rather than an error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38909&quot;&gt;&lt;del&gt;SERVER-38909&lt;/del&gt;&lt;/a&gt; Permit empty update modifiers, treating as a no-op rather than an error&lt;/p&gt;

&lt;p&gt;    (cherry picked from commit c24d2d002b0defbe6a300e0f20cdb9242ec78125)&lt;br/&gt;
    (cherry picked from commit 2d4e4380f7014861996991f9160921f2b645c8fb)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ad51c2da0567585391d9e02529d4a495aa460c4d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ad51c2da0567585391d9e02529d4a495aa460c4d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3346659" author="xgen-internal-githook" created="Wed, 19 Aug 2020 09:18:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38909&quot; title=&quot;Permit empty update modifiers, treating as a no-op rather than an error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38909&quot;&gt;&lt;del&gt;SERVER-38909&lt;/del&gt;&lt;/a&gt; Permit empty update modifiers, treating as a no-op rather than an error&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2d4e4380f7014861996991f9160921f2b645c8fb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2d4e4380f7014861996991f9160921f2b645c8fb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3332358" author="xgen-internal-githook" created="Tue, 11 Aug 2020 13:43:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38909&quot; title=&quot;Permit empty update modifiers, treating as a no-op rather than an error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38909&quot;&gt;&lt;del&gt;SERVER-38909&lt;/del&gt;&lt;/a&gt; Permit empty update modifiers, treating as a no-op rather than an error&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c24d2d002b0defbe6a300e0f20cdb9242ec78125&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c24d2d002b0defbe6a300e0f20cdb9242ec78125&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3331783" author="xgen-internal-githook" created="Mon, 10 Aug 2020 23:11:12 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Vesselina Ratcheva&apos;, &apos;email&apos;: &apos;vesselina.ratcheva@10gen.com&apos;, &apos;username&apos;: &apos;vessy-mongodb&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38909&quot; title=&quot;Permit empty update modifiers, treating as a no-op rather than an error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38909&quot;&gt;&lt;del&gt;SERVER-38909&lt;/del&gt;&lt;/a&gt; Permit empty update modifiers, treating as a no-op rather than an error&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 957febbf065a51cc278c66c72f5a81ff2630201c.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f7663ec260985506ac482ddb86ceee100e64112d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f7663ec260985506ac482ddb86ceee100e64112d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3331191" author="xgen-internal-githook" created="Mon, 10 Aug 2020 17:56:43 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Mindaugas Malinauskas&apos;, &apos;email&apos;: &apos;mindaugas.malinauskas@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38909&quot; title=&quot;Permit empty update modifiers, treating as a no-op rather than an error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38909&quot;&gt;&lt;del&gt;SERVER-38909&lt;/del&gt;&lt;/a&gt; Permit empty update modifiers, treating as a no-op rather than an error&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/957febbf065a51cc278c66c72f5a81ff2630201c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/957febbf065a51cc278c66c72f5a81ff2630201c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2112999" author="daniel.hatcher" created="Fri, 11 Jan 2019 21:47:28 +0000"  >&lt;p&gt;Hello Frank,&lt;/p&gt;

&lt;p&gt;Thank you for your report. Our query team will take a look at this ticket and determine the best path forward.&lt;/p&gt;

&lt;p&gt;Thank you,&lt;/p&gt;

&lt;p&gt;Danny&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="1438029">DOCS-13822</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10423">
                    <name>Gantt End to End</name>
                                            <outwardlinks description="has to be finished together with">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1381777">SERVER-48890</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="18953"><![CDATA[v4.4]]></customfieldvalue>
    <customfieldvalue key="16775"><![CDATA[v4.2]]></customfieldvalue>
    <customfieldvalue key="15640"><![CDATA[v4.0]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10011"><![CDATA[Minor Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000niCFTQA2]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 10 Jan 2019 00:27:59 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 36 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Changed the behavior of &amp;quot;update&amp;quot; and &amp;quot;findAndModify&amp;quot; commands. All update modifiers allow an empty spec (i.e. {$pop: {}}, {$min: {}}, {$set: {}}, {$unset: {}}) now.  Flagging for review.</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16942"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1751</customfieldvalue>
                        </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>
                            2 years, 36 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>33.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.hatcher@mongodb.com</customfieldvalue>
            <customfieldvalue>frank.trampe</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>mindaugas.malinauskas@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huimjj:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="3612">Query 2020-08-24</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_17051" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Teams Impacted</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16943"><![CDATA[Cloud]]></customfieldvalue>
    <customfieldvalue key="16944"><![CDATA[Docs]]></customfieldvalue>
    <customfieldvalue key="16945"><![CDATA[Drivers]]></customfieldvalue>
    
                        </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_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hui8sv:</customfieldvalue>

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