<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:45:22 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-37220] MongoDB slow facet query using multiple group by</title>
                <link>https://jira.mongodb.org/browse/SERVER-37220</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;I am working on a project where we will have almost 5 million documents in a collection. And each document&apos;s size will be around 18571 bytes having 120 to 150 fields.&lt;/p&gt;

&lt;p&gt;I have to return my response in less than 1 second. And mongo query will perform almost 10 to 15 group by in faceted query on maximum 3,00,000 documents.&lt;/p&gt;

&lt;p&gt;This is my first time handling this much of data where I have to return responses in real time.&lt;/p&gt;

&lt;p&gt;I have implemented indexes and they reduced response time to 5 to 6 seconds but I still need it in less then 1 second.&lt;/p&gt;

&lt;p&gt;*&lt;b&gt;Below is sample query:&lt;/b&gt;*&lt;/p&gt;

&lt;p&gt;    db.sample.aggregation(&lt;br/&gt;
        &quot;$match&quot;:{&lt;br/&gt;
            &quot;$and&quot;:[&lt;br/&gt;
                &lt;/p&gt;
{&quot;is_new&quot;: &amp;lt;true/false&amp;gt;}
&lt;p&gt;,&lt;br/&gt;
                &lt;/p&gt;
{&quot;brand&quot;:&amp;lt;some-brand&amp;gt;}
&lt;p&gt;,&lt;br/&gt;
                {&quot;year&quot;:{&quot;$gte&quot;:&amp;lt;some-year&amp;gt;,&quot;$lte&quot;:&amp;lt;some-year&amp;gt;}},&lt;br/&gt;
                {&quot;seller_id&quot;:{&quot;$in&quot;:&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;array-of-seller-ids-may-have-40,000-seller-ids&amp;gt;&amp;#93;&lt;/span&gt;}}&lt;br/&gt;
            ]&lt;br/&gt;
        },&lt;br/&gt;
        {&lt;br/&gt;
            &quot;$facet&quot;:{&lt;br/&gt;
                &quot;data&quot;:[{&lt;br/&gt;
                    &quot;$project&quot;:&lt;/p&gt;
{
                        &quot;_id&quot;:&quot;_id&quot;,
                        &quot;brand&quot;:&quot;$brand_name&quot;,
                        &quot;model&quot;:&quot;$model_name&quot;,
                        &amp;lt;will have almost 20 keys with lookup&amp;gt;
                    }
&lt;p&gt;                }],&lt;br/&gt;
                &quot;count&quot;:[{&quot;$group&quot;:{&quot;_id&quot;:&quot;$_id&quot;}},&lt;/p&gt;
{&quot;$count&quot;:&quot;vin_count&quot;}
&lt;p&gt;],&lt;br/&gt;
                &quot;price&quot;:&lt;span class=&quot;error&quot;&gt;&amp;#91;{&amp;quot;$bucketAuto&amp;quot;:{&amp;quot;groupBy&amp;quot;:&amp;quot;$price&amp;quot;, &amp;quot;buckets&amp;quot;:1}}&amp;#93;&lt;/span&gt;,&lt;br/&gt;
                &amp;lt;will have 12-15 group by&amp;gt;&lt;br/&gt;
            }&lt;br/&gt;
        }&lt;br/&gt;
    )&lt;/p&gt;

&lt;p&gt;*&lt;b&gt;Below is sample document:&lt;/b&gt;*&lt;/p&gt;

&lt;p&gt;	{&lt;br/&gt;
		&quot;_id&quot; : &quot;KNDMC5C11J6394584&quot;,&lt;br/&gt;
		&quot;brand_id&quot; : 22,&lt;br/&gt;
		&quot;brand_name&quot; : &quot;XYZ&quot;,&lt;br/&gt;
		&quot;abc_id&quot; : 1234567890,&lt;br/&gt;
		&quot;city&quot; : &quot;Gurgaon, IN&quot;,&lt;br/&gt;
		&quot;fluctuation&quot; : 18,&lt;br/&gt;
		&quot;created_at&quot; : ISODate(&quot;2018-08-17T06:08:12.940Z&quot;),&lt;br/&gt;
		&quot;release_data&quot; : &quot;2018-06-29&quot;,&lt;br/&gt;
		&quot;seller_name&quot; : &quot;Seller name&quot;,&lt;br/&gt;
		&quot;seller_price&quot; : 34890,&lt;br/&gt;
		&quot;seller_rating&quot; : 4,&lt;br/&gt;
		&quot;seller_zip&quot; : &quot;12550&quot;,&lt;br/&gt;
		&quot;feature1&quot; : &quot;ABC&quot;,&lt;br/&gt;
		&quot;feature2&quot; : 3300,&lt;br/&gt;
		&quot;feature3&quot; : &quot;AB&quot;,&lt;br/&gt;
		&quot;expected_price&quot; : -1,&lt;br/&gt;
		&quot;exterior_color&quot; : &quot;Unknown&quot;,&lt;br/&gt;
		&quot;registered_dealer&quot; : true,&lt;br/&gt;
		&quot;registered_brand&quot; : &quot;ABC&quot;,&lt;br/&gt;
		&quot;fluctuation_rate&quot; : 20.700000000000003,&lt;br/&gt;
		&quot;fluctuation_type&quot; : 2,&lt;br/&gt;
		&quot;fluc_type_name&quot; : &quot;Something&quot;,&lt;br/&gt;
		&quot;has_patents&quot; : false,&lt;br/&gt;
		&quot;tested_frequency&quot; : 24,&lt;br/&gt;
		&quot;interior_color&quot; : &quot;---&quot;,&lt;br/&gt;
		&quot;is_certified&quot; : false,&lt;br/&gt;
		&quot;is_certified_iso&quot; : false,&lt;br/&gt;
		&quot;is_featured&quot; : false,&lt;br/&gt;
		&quot;is_new&quot; : true,&lt;br/&gt;
		&quot;is_certified_bhel&quot; : false,&lt;br/&gt;
		&quot;location&quot; : &lt;/p&gt;
{
			&quot;type&quot; : &quot;Point&quot;,
			&quot;coordinates&quot; : [
				-24.08180236816406,
				31.507198333740234
			]
		}
&lt;p&gt;,&lt;br/&gt;
		&quot;max_input&quot; : 8,&lt;br/&gt;
		&quot;feature4&quot; : 3,&lt;br/&gt;
		&quot;feature5&quot; : 206,&lt;br/&gt;
		&quot;feature6&quot; : &quot;Something&quot;,&lt;br/&gt;
		&quot;monthly_payment&quot; : 649,&lt;br/&gt;
		&quot;msrp&quot; : 34890,&lt;br/&gt;
		&quot;feature7&quot; : false,&lt;br/&gt;
		&quot;seller_id&quot; : 123567890,&lt;br/&gt;
		&quot;product_family_name&quot; : &quot;abc&quot;,&lt;br/&gt;
		&quot;product_id&quot; : 15,&lt;br/&gt;
		&quot;product_name&quot; : &quot;Something&quot;,&lt;br/&gt;
		&quot;reflection&quot; : &quot;Something&quot;,&lt;br/&gt;
		&quot;fluc_id&quot; : 2312,&lt;br/&gt;
		&quot;fluc_name&quot; : &quot;something something (abc) ac&quot;,&lt;br/&gt;
		&quot;updated_at&quot; : ISODate(&quot;2018-09-11T17:59:36.889Z&quot;),&lt;br/&gt;
		&quot;product_damage_category&quot; : &quot;None&quot;,&lt;br/&gt;
		&quot;year&quot; : 2018,&lt;br/&gt;
		&quot;damage_check&quot; : &quot;-&quot;,&lt;br/&gt;
		&quot;team_size&quot; : &quot;-&quot;,&lt;br/&gt;
		&quot;Technology&quot; : &lt;/p&gt;
{
			&quot;camera_unit&quot; : true
		}
&lt;p&gt;	}&lt;/p&gt;

&lt;p&gt;*&lt;b&gt;Below is the explain output&lt;/b&gt;*&lt;/p&gt;

&lt;p&gt;	{&lt;br/&gt;
		&quot;stages&quot; : [&lt;br/&gt;
			{&lt;br/&gt;
				&quot;$cursor&quot; : {&lt;br/&gt;
					&quot;query&quot; : {&lt;br/&gt;
						&quot;$and&quot; : [&lt;br/&gt;
							&lt;/p&gt;
{
								&quot;is_new&quot; : true
							}
&lt;p&gt;,&lt;br/&gt;
							{&lt;br/&gt;
								&quot;year&quot; : &lt;/p&gt;
{
									&quot;$gte&quot; : 2018,
									&quot;$lte&quot; : 2018
								}
&lt;p&gt;							},&lt;br/&gt;
							{&lt;br/&gt;
								&quot;sp_id&quot; : &lt;/p&gt;
{
									&quot;$in&quot; : [&amp;lt;list of 40,000 seller ids&amp;gt;]
								}
&lt;p&gt;							}&lt;br/&gt;
						]&lt;br/&gt;
					},&lt;br/&gt;
					&quot;queryPlanner&quot; : {&lt;br/&gt;
						&quot;plannerVersion&quot; : 1,&lt;br/&gt;
						&quot;namespace&quot; : &quot;test_collection.col&quot;,&lt;br/&gt;
						&quot;indexFilterSet&quot; : false,&lt;br/&gt;
						&quot;parsedQuery&quot; : {&lt;br/&gt;
							&quot;$and&quot; : [&lt;br/&gt;
								{&lt;br/&gt;
									&quot;is_new&quot; : &lt;/p&gt;
{
										&quot;$eq&quot; : true
									}
&lt;p&gt;								},&lt;br/&gt;
								{&lt;br/&gt;
									&quot;year&quot; : &lt;/p&gt;
{
										&quot;$lte&quot; : 2018
									}
&lt;p&gt;								},&lt;br/&gt;
								{&lt;br/&gt;
									&quot;year&quot; : &lt;/p&gt;
{
										&quot;$gte&quot; : 2018
									}
&lt;p&gt;								},&lt;br/&gt;
								{&lt;br/&gt;
									&quot;sp_id&quot; : &lt;/p&gt;
{
										&quot;$in&quot; : [&amp;lt;list of 40,000 seller ids&amp;gt;]
									}
&lt;p&gt;								}&lt;br/&gt;
							]&lt;br/&gt;
						},&lt;br/&gt;
						&quot;winningPlan&quot; : {&lt;br/&gt;
							&quot;stage&quot; : &quot;FETCH&quot;,&lt;br/&gt;
							&quot;inputStage&quot; : {&lt;br/&gt;
								&quot;stage&quot; : &quot;IXSCAN&quot;,&lt;br/&gt;
								&quot;keyPattern&quot; : &lt;/p&gt;
{
									&quot;is_new&quot; : 1,
									&quot;year&quot; : 1,
									&quot;sp_id&quot; : 1
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;indexName&quot; : &quot;is_new_1_year_1_sp_id_1&quot;,&lt;br/&gt;
								&quot;isMultiKey&quot; : false,&lt;br/&gt;
								&quot;multiKeyPaths&quot; : &lt;/p&gt;
{
									&quot;is_new&quot; : [ ],
									&quot;year&quot; : [ ],
									&quot;sp_id&quot; : [ ]
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;isUnique&quot; : false,&lt;br/&gt;
								&quot;isSparse&quot; : false,&lt;br/&gt;
								&quot;isPartial&quot; : false,&lt;br/&gt;
								&quot;indexVersion&quot; : 2,&lt;br/&gt;
								&quot;direction&quot; : &quot;forward&quot;,&lt;br/&gt;
								&quot;indexBounds&quot; : &lt;/p&gt;
{
									&quot;is_new&quot; : [
										&quot;[true, true]&quot;
									],
									&quot;year&quot; : [
										&quot;[2018.0, 2018.0]&quot;
									],
									&quot;sp_id&quot; : [
										&quot;[47590.0, 47590.0]&quot;,
										&quot;[48333.0, 48333.0]&quot;,
										&quot;[51333.0, 51333.0]&quot;,
										&amp;lt;range of 40,000 seller_ids&amp;gt;
									]
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						&quot;rejectedPlans&quot; : [ ]&lt;br/&gt;
					}&lt;br/&gt;
				}&lt;br/&gt;
			},&lt;br/&gt;
			{&lt;br/&gt;
				&quot;$facet&quot; : {&lt;br/&gt;
					&quot;data&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$project&quot; : &lt;/p&gt;
{
								&quot;_id&quot; : &quot;$_id&quot;,
								&quot;brand_name&quot; : &quot;$brand_name&quot;,
								&quot;feature1&quot; : &quot;$feature1&quot;,
								&quot;feature2&quot; : &quot;$feature2&quot;,
								&quot;feature3&quot; : &quot;$feature3&quot;,
								&quot;feature4&quot; : &quot;$feature4&quot;,
								&quot;feature5&quot; : &quot;$feature5&quot;,
								&quot;feature6&quot; : &quot;$feature6&quot;,
								&quot;feature7&quot; : &quot;$feature7&quot;,
								&quot;feature8&quot; : &quot;$feature8&quot;,
								&quot;feature9&quot; : &quot;$feature9&quot;,
								&quot;feature10&quot; : &quot;$feature10&quot;,
								&quot;feature11&quot; : &quot;$feature11&quot;,
								&quot;feature12&quot; : &quot;$feature12&quot;,
								&quot;feature13&quot; : &quot;$feature13&quot;,
								&quot;feature14&quot; : &quot;$feature14&quot;,
								&quot;feature15&quot; : &quot;$feature15&quot;,
								&quot;feature16&quot; : &quot;$feature16&quot;,
								&quot;feature17&quot; : &quot;$feature17&quot;,
								&quot;feature18&quot; : &quot;$feature18&quot;,
								&quot;feature19&quot; : &quot;$feature19&quot;,
								&quot;feature20&quot; : &quot;$feature20&quot;
							}
&lt;p&gt;						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;count&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : &lt;/p&gt;
{
								&quot;_id&quot; : &quot;$_id&quot;
							}
&lt;p&gt;						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &lt;/p&gt;
{
									&quot;$const&quot; : null
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$project&quot; : &lt;/p&gt;
{
								&quot;_id&quot; : false,
								&quot;count&quot; : true
							}
&lt;p&gt;						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature1&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature1&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature1&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature1&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature2&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature2&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature2&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature2&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature3&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature3&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature3&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature3&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature4&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature4&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature4&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature4&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature5&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature5&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature5&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$fuel&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature6&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature6&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature6&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature6&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature7&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature7&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature7&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature7&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature8&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature8&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature8&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature8&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature9&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature9&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature9&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature9&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;count&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature10&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature10&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$group&quot; : {&lt;br/&gt;
								&quot;_id&quot; : &quot;$feature10&quot;,&lt;br/&gt;
								&quot;name&quot; : &lt;/p&gt;
{
									&quot;$first&quot; : &quot;$feature10&quot;
								}
&lt;p&gt;,&lt;br/&gt;
								&quot;count&quot; : {&lt;br/&gt;
									&quot;$sum&quot; : &lt;/p&gt;
{
										&quot;$const&quot; : 1
									}
&lt;p&gt;								}&lt;br/&gt;
							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$sort&quot; : {&lt;br/&gt;
								&quot;sortKey&quot; : &lt;/p&gt;
{
									&quot;_id&quot; : -1
								}
&lt;p&gt;							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature11&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$match&quot; : {&lt;br/&gt;
								&quot;feature11&quot; : &lt;/p&gt;
{
									&quot;$exists&quot; : true
								}
&lt;p&gt;							}&lt;br/&gt;
						},&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$bucketAuto&quot; : {&lt;br/&gt;
								&quot;groupBy&quot; : &quot;$feature11&quot;,&lt;br/&gt;
								&quot;buckets&quot; : 1,&lt;br/&gt;
								&quot;output&quot; : {&lt;br/&gt;
									&quot;count&quot; : {&lt;br/&gt;
										&quot;$sum&quot; : &lt;/p&gt;
{
											&quot;$const&quot; : 1
										}
&lt;p&gt;									}&lt;br/&gt;
								}&lt;br/&gt;
							}&lt;br/&gt;
						}&lt;br/&gt;
					],&lt;br/&gt;
					&quot;feature12&quot; : [&lt;br/&gt;
						{&lt;br/&gt;
							&quot;$bucketAuto&quot; : {&lt;br/&gt;
								&quot;groupBy&quot; : &quot;$feature11&quot;,&lt;br/&gt;
								&quot;buckets&quot; : 1,&lt;br/&gt;
								&quot;output&quot; : {&lt;br/&gt;
									&quot;count&quot; : {&lt;br/&gt;
										&quot;$sum&quot; : &lt;/p&gt;
{
											&quot;$const&quot; : 1
										}
&lt;p&gt;									}&lt;br/&gt;
								}&lt;br/&gt;
							}&lt;br/&gt;
						}&lt;br/&gt;
					]&lt;br/&gt;
				}&lt;br/&gt;
			}&lt;br/&gt;
		],&lt;br/&gt;
		&quot;ok&quot; : 1&lt;br/&gt;
	}&lt;br/&gt;
If this information is not complete for the solution. I will provide more.&lt;/p&gt;

&lt;p&gt;I am stuck on this from last 1 month.&lt;/p&gt;

&lt;p&gt;Any help would be appreciated.&lt;/p&gt;</description>
                <environment></environment>
        <key id="607402">SERVER-37220</key>
            <summary>MongoDB slow facet query using multiple group by</summary>
                <type id="6" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14720&amp;avatarType=issuetype">Question</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="9">Done</resolution>
                                        <assignee username="nick.brewer">Nick Brewer</assignee>
                                    <reporter username="jitender.collegedunia">Jitender Kumar Singla</reporter>
                        <labels>
                    </labels>
                <created>Thu, 20 Sep 2018 05:16:55 +0000</created>
                <updated>Thu, 20 Sep 2018 15:10:43 +0000</updated>
                            <resolved>Thu, 20 Sep 2018 15:10:43 +0000</resolved>
                                    <version>4.0.1</version>
                                                    <component>Aggregation Framework</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2009233" author="nick.brewer" created="Thu, 20 Sep 2018 15:10:31 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jitender.collegedunia&quot; class=&quot;user-hover&quot; rel=&quot;jitender.collegedunia&quot;&gt;jitender.collegedunia&lt;/a&gt; I suggest taking a look at the following resources related to query optimization:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/tutorial/optimize-query-performance-with-indexes-and-projections/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Query Performance (tutorial)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/core/query-optimization/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Query Optimization&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/applications/indexes/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Indexing Strategies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Additionally, while it&apos;s a bit old, this &lt;a href=&quot;https://emptysqua.re/blog/optimizing-mongodb-compound-indexes/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;blog post&lt;/a&gt; is an excellent resource for information on optimizing compound indexes. &lt;/p&gt;

&lt;p&gt;Please note that SERVER project is for reporting bugs or feature suggestions for the MongoDB server. For MongoDB-related support discussion please post on the &lt;a href=&quot;https://groups.google.com/group/mongodb-user&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mongodb-user group&lt;/a&gt; or &lt;a href=&quot;https://stackoverflow.com/questions/tagged/mongodb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Stack Overflow with the &lt;tt&gt;mongodb&lt;/tt&gt; tag&lt;/a&gt;. A question like this involving more discussion would be best posted on the mongodb-user group.&lt;/p&gt;

&lt;p&gt;-Nick&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>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 20 Sep 2018 15:10:31 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 20 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_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>nick.brewer</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 20 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jitender.collegedunia</customfieldvalue>
            <customfieldvalue>nick.brewer</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu8g1j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htyvxj:</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_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|hu82av:</customfieldvalue>

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