<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:00:42 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-42518] Wildcard index plans miss results when the query path has multiple subsequent array indexes</title>
                <link>https://jira.mongodb.org/browse/SERVER-42518</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This issue was identified by &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=joe.caswell&quot; class=&quot;user-hover&quot; rel=&quot;joe.caswell&quot;&gt;joe.caswell&lt;/a&gt;, who observed the following correctness problem after creating a wildcard index:&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; &amp;gt; db.c.drop()&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;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; &amp;gt; db.c.insert({a: [[&quot;test&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.c.find({&quot;a.0.0&quot;: &quot;test&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;_id&quot; : ObjectId(&quot;5d40b2c8a1925e90174dbd65&quot;), &quot;a&quot; : [ [ &quot;test&quot; ] ] } // Document matches as expected.&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.c.createIndex({&quot;$**&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;createdCollectionAutomatically&quot; : false,&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;numIndexesBefore&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;numIndexesAfter&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;commitQuorum&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;ok&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;&amp;gt; db.c.find({&quot;a.0.0&quot;: &quot;test&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;// Document does not match! This is a bug due to an incorrect plan.&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;When a wildcard index is present, the planner attempts to use it in order to satisfy the equality predicate over the path &quot;a.0.0&quot;. In this example, both &quot;0&quot; path components resolve to array indexes. The access plan, however, does not correctly account for these array index path components. This leads to missing results.&lt;/p&gt;

&lt;p&gt;This issue should only impact queries which attempt to match a nested array by using multiple subsequent array indexes. Operations which do not query by array index, or which do not have multiple adjacent array index path components (e.g. &quot;a.0&quot; or &quot;a.0.b.1&quot;) are not affected. &lt;/p&gt;</description>
                <environment></environment>
        <key id="880333">SERVER-42518</key>
            <summary>Wildcard index plans miss results when the query path has multiple subsequent array indexes</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.mongodb.org/images/icons/priorities/critical.svg">Critical - P2</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="david.storch@mongodb.com">David Storch</assignee>
                                    <reporter username="david.storch@mongodb.com">David Storch</reporter>
                        <labels>
                            <label>KS</label>
                            <label>query-44-grooming</label>
                    </labels>
                <created>Tue, 30 Jul 2019 21:21:45 +0000</created>
                <updated>Sun, 29 Oct 2023 22:18:34 +0000</updated>
                            <resolved>Thu, 22 Aug 2019 14:05:25 +0000</resolved>
                                    <version>4.2.0-rc4</version>
                                    <fixVersion>4.2.1</fixVersion>
                    <fixVersion>4.3.1</fixVersion>
                                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="2382948" author="xgen-internal-githook" created="Thu, 22 Aug 2019 16:29:30 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;dstorch&apos;, &apos;email&apos;: &apos;david.storch@10gen.com&apos;, &apos;name&apos;: &apos;David Storch&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-42518&quot; title=&quot;Wildcard index plans miss results when the query path has multiple subsequent array indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-42518&quot;&gt;&lt;del&gt;SERVER-42518&lt;/del&gt;&lt;/a&gt; Prevent paths with successive array indexes from using a wildcard index.&lt;/p&gt;

&lt;p&gt;Consider a query on a generic path &quot;c1.c2...arr.0.1...cn&quot;&lt;br/&gt;
consisting of n path components. Somewhere in the middle of&lt;br/&gt;
this path, there is a component &quot;arr&quot; that is known to be&lt;br/&gt;
multikey, followed by multiple successive array indexes (&quot;0&quot;&lt;br/&gt;
and &quot;1&quot; in this example). Any predicate whose path matches&lt;br/&gt;
this description cannot correctly be answered with a&lt;br/&gt;
wildcard index. This is because wildcard indexes do not&lt;br/&gt;
recursively expand directly nested arrays. That is, when&lt;br/&gt;
indexing an array such as [&lt;span class=&quot;error&quot;&gt;&amp;#91;1, 2&amp;#93;&lt;/span&gt;, &lt;span class=&quot;error&quot;&gt;&amp;#91;3, 4&amp;#93;&lt;/span&gt;], the index keys&lt;br/&gt;
will be &lt;span class=&quot;error&quot;&gt;&amp;#91;1, 2&amp;#93;&lt;/span&gt; and &lt;span class=&quot;error&quot;&gt;&amp;#91;3, 4&amp;#93;&lt;/span&gt;, as opposed to 1, 2, 3, and 4.&lt;br/&gt;
Since the index does not contain keys for individual nested&lt;br/&gt;
array elements, it cannot be cheaply used for queries&lt;br/&gt;
against nested array elements.&lt;/p&gt;

&lt;p&gt;This change fixes the planner to avoid attempting to use a&lt;br/&gt;
wildcard index in such cases, thereby fixing a query&lt;br/&gt;
correctness bug.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 0f0463d0442b2c77cb650a8e84fea4d634fb63e6)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ad7bb60d1f0ab0dd33a228a138aded97003006c2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ad7bb60d1f0ab0dd33a228a138aded97003006c2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2382538" author="xgen-internal-githook" created="Thu, 22 Aug 2019 14:04:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;dstorch&apos;, &apos;email&apos;: &apos;david.storch@10gen.com&apos;, &apos;name&apos;: &apos;David Storch&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-42518&quot; title=&quot;Wildcard index plans miss results when the query path has multiple subsequent array indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-42518&quot;&gt;&lt;del&gt;SERVER-42518&lt;/del&gt;&lt;/a&gt; Prevent paths with successive array indexes from using a wildcard index.&lt;/p&gt;

&lt;p&gt;Consider a query on a generic path &quot;c1.c2...arr.0.1...cn&quot;&lt;br/&gt;
consisting of n path components. Somewhere in the middle of&lt;br/&gt;
this path, there is a component &quot;arr&quot; that is known to be&lt;br/&gt;
multikey, followed by multiple successive array indexes (&quot;0&quot;&lt;br/&gt;
and &quot;1&quot; in this example). Any predicate whose path matches&lt;br/&gt;
this description cannot correctly be answered with a&lt;br/&gt;
wildcard index. This is because wildcard indexes do not&lt;br/&gt;
recursively expand directly nested arrays. That is, when&lt;br/&gt;
indexing an array such as [&lt;span class=&quot;error&quot;&gt;&amp;#91;1, 2&amp;#93;&lt;/span&gt;, &lt;span class=&quot;error&quot;&gt;&amp;#91;3, 4&amp;#93;&lt;/span&gt;], the index keys&lt;br/&gt;
will be &lt;span class=&quot;error&quot;&gt;&amp;#91;1, 2&amp;#93;&lt;/span&gt; and &lt;span class=&quot;error&quot;&gt;&amp;#91;3, 4&amp;#93;&lt;/span&gt;, as opposed to 1, 2, 3, and 4.&lt;br/&gt;
Since the index does not contain keys for individual nested&lt;br/&gt;
array elements, it cannot be cheaply used for queries&lt;br/&gt;
against nested array elements.&lt;/p&gt;

&lt;p&gt;This change fixes the planner to avoid attempting to use a&lt;br/&gt;
wildcard index in such cases, thereby fixing a query&lt;br/&gt;
correctness bug.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0f0463d0442b2c77cb650a8e84fea4d634fb63e6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0f0463d0442b2c77cb650a8e84fea4d634fb63e6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2351374" author="david.storch" created="Tue, 30 Jul 2019 21:35:51 +0000"  >&lt;p&gt;After review, the Server Query Team believes that the appropriate fix for this issue is to prevent queries which have multiple subsequent positional path components from using a wildcard index when the previous path component is known to be an array. For example, point queries over the a path like &quot;a.0.0&quot; will not be eligible to use a wildcard index if the index metadata indicates that &quot;a&quot; is multikey. In such cases, the index does not record metadata about whether &quot;a.0&quot; or &quot;a.0.0&quot; are arrays; we must defensively presume that they are array indexes, as opposed to field names, due to their spelling. If we pursue such a fix, wildcard indexes will no longer be useful for schemas which involve field names spelled like array indexes. For example, imagine a schema with documents like {a: [{&quot;1&quot;: &quot;foo&quot;}}]}. The query find({&quot;a.0.1&quot;: &quot;foo&quot;}) will no longer be able to use a wildcard index, since the planner cannot know that the &quot;1&quot; always refers to a field name in the user&apos;s schema.&lt;/p&gt;

&lt;p&gt;It looks like this new behavior can be implemented by extending the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/7b2efc662712bc6034da89f68b77d0140fbf82cf/src/mongo/db/query/planner_wildcard_helpers.cpp#L228&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;validateNumericPathComponents()&lt;/tt&gt;&lt;/a&gt; function from &lt;tt&gt;planner_wildcard_helpers.cpp&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;The reason that queries like this cannot easily use the index is due to the internal index format. In a wildcard index, each key has a leading component which encodes the path as well as a trailing component which encodes the value. That is, each document is shredded into (path, value) pairs for indexing. For instance, the index keys for the document {a: 2, b: 3} with the wildcard index {&quot;$**&quot;: 1} would be {&quot;&quot;: &quot;a&quot;, &quot;&quot;: 2} and {&quot;&quot;: &quot;b&quot;, &quot;&quot;: 3}.&lt;/p&gt;

&lt;p&gt;When the document has an indexed array, we follow the pre-existing behavior for multikey indexes by producing an index key for every array element. For example, the document {a: 2, b: [3, 4]} will result in three index keys: {&quot;&quot;: &quot;a&quot;, &quot;&quot;: 2}, {&quot;&quot;: &quot;b&quot;, &quot;&quot;: 3}, and {&quot;&quot;: &quot;b&quot;, &quot;&quot;: 4}. Just like all other multikey indexes, nested arrays are not recursively expanded for indexing. Therefore, for your test document {a: [[&quot;test&quot;]]} the index will contain only the key {&quot;&quot;: &quot;a&quot;, &quot;&quot;: [&quot;test&quot;]}. Note that the array has been expanded just one level, as opposed to being recursively expanded. This design choice was important to make the semantics for using a multikey wildcard index to accelerate a query as similar as possible to how we build access plans for regular multikey indexes.&lt;/p&gt;

&lt;p&gt;Since nested array are not expanded, and since the array indexes are not explicitly encoded into the index keys, we cannot build useful index bounds for the query find({&quot;a.0.0&quot;: &quot;test&quot;}). We could, of course, search for the key {&quot;&quot;: &quot;a&quot;, &quot;&quot;: [&quot;test&quot;]}, but there is no good way for the planner to know &lt;em&gt;a priori&lt;/em&gt; that this is a good idea. Should we also search for the key {&quot;&quot;: &quot;a&quot;, [&quot;test&quot;, &quot;foo&quot;]} which could also be present for a matching document? It&apos;s possible that we could build clever index bounds that would incorporate all such index keys. This might only work well for array index &quot;0&quot;, since the bounds necessary to capture all index keys containing arrays which have a particular value at element &quot;n&quot; would likely be inefficient.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></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, 22 Aug 2019 14:04:34 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 24 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></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>
                            4 years, 24 weeks, 6 days ago
                        </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>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvibgf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hv7asf:</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="2882">Query 2019-08-12</customfieldvalue>
    <customfieldvalue id="2883">Query 2019-08-26</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|hvhxpr:</customfieldvalue>

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