<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:03:45 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-3685] Unique index with sparse does not work</title>
                <link>https://jira.mongodb.org/browse/SERVER-3685</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In my mongo shell, I do this:&lt;/p&gt;

&lt;p&gt;db.members.ensureIndex(&lt;/p&gt;
{facebook_id:1}
&lt;p&gt;,&lt;/p&gt;
{unique:true,sparse:true}
&lt;p&gt;)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;I also try db.members.ensureIndex(
{facebook_id:1}
&lt;p&gt;,&lt;/p&gt;
{sparse:true,unique:true}
&lt;p&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Then I try to insert 2 records with facebook_id = null&lt;/p&gt;

&lt;p&gt;I have got this message:&lt;/p&gt;

&lt;p&gt;E11000 duplicate key error index: writepub.members.$facebook_id_1  dup key: { :null }&lt;/p&gt;</description>
                <environment>Windows 7</environment>
        <key id="21503">SERVER-3685</key>
            <summary>Unique index with sparse does not work</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="-1">Unassigned</assignee>
                                    <reporter username="tanin47">Tanin Na Nakorn</reporter>
                        <labels>
                    </labels>
                <created>Thu, 25 Aug 2011 08:20:21 +0000</created>
                <updated>Mon, 3 Nov 2014 10:37:01 +0000</updated>
                            <resolved>Thu, 25 Aug 2011 14:21:17 +0000</resolved>
                                    <version>1.8.2</version>
                                                    <component>Index Maintenance</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="754391" author="kic" created="Mon, 3 Nov 2014 10:37:01 +0000"  >&lt;p&gt;That is what is sparse for: &lt;/p&gt;

&lt;p&gt;Sparse indexes only contain entries for documents that have the indexed field, even if the index field contains a null value. The index skips over any document that is missing the indexed field. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://docs.mongodb.org/manual/core/index-sparse/#index-type-sparse&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://docs.mongodb.org/manual/core/index-sparse/#index-type-sparse&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="50683" author="eliot" created="Thu, 25 Aug 2011 14:21:18 +0000"  >&lt;p&gt;null counts as being a field.&lt;br/&gt;
The field has to be missing for it not to be indexed&lt;/p&gt;</comment>
                            <comment id="50662" author="scotthernandez" created="Thu, 25 Aug 2011 12:12:55 +0000"  >&lt;p&gt;(tested on 1.9.2)&lt;br/&gt;
Look suspect when using null:&lt;/p&gt;

&lt;p&gt;&amp;gt; db.users.dropIndexes()&lt;br/&gt;
&amp;gt; db.users.find()&lt;/p&gt;
{ &quot;_id&quot; : 1, &quot;facebook_id&quot; : null }
&lt;p&gt;&amp;gt; db.users.ensureIndex(&lt;/p&gt;
{facebook_id:true}
&lt;p&gt;, &lt;/p&gt;
{sparse:true, unique:true}
&lt;p&gt;)&lt;br/&gt;
&amp;gt; db.users.$facebook_id_.count()&lt;br/&gt;
1&lt;br/&gt;
&amp;gt; db.users.insert({_id:2, facebook_id:null})&lt;br/&gt;
E11000 duplicate key error index: test.users.$facebook_id_  dup key: { : null }&lt;br/&gt;
&amp;gt; db.users.find(&lt;/p&gt;
{facebook_id : null}
&lt;p&gt;).explain()&lt;br/&gt;
{&lt;br/&gt;
        &quot;cursor&quot; : &quot;BtreeCursor facebook_id_&quot;,&lt;br/&gt;
        &quot;nscanned&quot; : 1,&lt;br/&gt;
        &quot;nscannedObjects&quot; : 1,&lt;br/&gt;
        &quot;n&quot; : 1,&lt;br/&gt;
        &quot;millis&quot; : 0,&lt;br/&gt;
        &quot;nYields&quot; : 0,&lt;br/&gt;
        &quot;nChunkSkips&quot; : 0,&lt;br/&gt;
        &quot;isMultiKey&quot; : false,&lt;br/&gt;
        &quot;indexOnly&quot; : false,&lt;br/&gt;
        &quot;indexBounds&quot; : &lt;/p&gt;
{
                &quot;facebook_id&quot; : [
                        [
                                null,
                                null
                        ]
                ]
        }
&lt;p&gt;}&lt;br/&gt;
PRIMARY&amp;gt; db.users.getIndexes()&lt;br/&gt;
[&lt;br/&gt;
        {&lt;br/&gt;
                &quot;v&quot; : 1,&lt;br/&gt;
                &quot;key&quot; : &lt;/p&gt;
{
                        &quot;_id&quot; : 1
                }
&lt;p&gt;,&lt;br/&gt;
                &quot;ns&quot; : &quot;test.users&quot;,&lt;br/&gt;
                &quot;name&quot; : &quot;&lt;em&gt;id&lt;/em&gt;&quot;&lt;br/&gt;
        },&lt;br/&gt;
        {&lt;br/&gt;
                &quot;v&quot; : 1,&lt;br/&gt;
                &quot;key&quot; : &lt;/p&gt;
{
                        &quot;facebook_id&quot; : true
                }
&lt;p&gt;,&lt;br/&gt;
                &quot;unique&quot; : true,&lt;br/&gt;
                &quot;ns&quot; : &quot;test.users&quot;,&lt;br/&gt;
                &quot;name&quot; : &quot;facebook_id_&quot;,&lt;br/&gt;
                &quot;sparse&quot; : true&lt;br/&gt;
        }&lt;br/&gt;
]&lt;/p&gt;

&lt;p&gt;----------------------&lt;/p&gt;

&lt;p&gt;&amp;gt; db.users.remove()&lt;br/&gt;
&amp;gt; db.users.insert({_id:1})&lt;br/&gt;
&amp;gt; db.users.insert({_id:2})&lt;br/&gt;
&amp;gt; db.users.insert({_id:3})&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 25 Aug 2011 12:12:55 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        9 years, 15 weeks, 2 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_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>ian@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            9 years, 15 weeks, 2 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_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>kic</customfieldvalue>
            <customfieldvalue>scotthernandez</customfieldvalue>
            <customfieldvalue>tanin47</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hroson:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>23327</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_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht0e8f:</customfieldvalue>

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