Move $match in front of $group if condition is on group key

XMLWordPrintableJSON

    • Query Optimization
    • Fully Compatible
    • v4.2
    • Query 2019-06-03, Query 2019-06-17, Query 2019-07-01
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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", ...}} ] 
      

              Assignee:
              [DO NOT USE] Backlog - Query Optimization
              Reporter:
              Asya Kamsky
              Votes:
              0 Vote for this issue
              Watchers:
              16 Start watching this issue

                Created:
                Updated:
                Resolved: