Details
-
Improvement
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
Query Optimization
-
Fully Compatible
-
v4.2
-
Query 2019-06-03, Query 2019-06-17, Query 2019-07-01
-
(copied to CRM)
Description
In case of views created on results of a $group, if the subsequent query is filtering on _id field then it should be possible to push that $match in front of $group transforming it into filter against whatever field is being grouped.
Example:
Vew definition:
[ {$group:{_id:"$city", ...}} ]
|
Query on view:
{$match: {_id:{$in:["NY", "SF"]}}}
|
Pipeline transformation:
// from
|
[ {$group:{_id:"$city", ...}}, {$match: {_id:{$in:["NY", "SF"]}}} ]
|
// to
|
[{$match: {city:{$in:["NY", "SF"]}}}, {$group:{_id:"$city", ...}} ]
|