Allow rewrite to push exclusion meta projections past $unpackBucket

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 5.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Query Optimization 2021-04-05, Query Optimization 2021-04-19, Query Optimization 2021-05-03
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      If we have an exclusion $project only on meta after an $unpackBucket, we can move the $project before $unpackBucket. For example:

      {$unpackBucket: {exclude: [], metaField: "myMeta"}},
      {$project : {myMeta.a : 0, myMeta.b: 0}}
      --->
      {$project : {meta.a : 0, meta.b: 0}}
      {$unpackBucket: {exclude: [], metaField: "myMeta"}},

      We can do something similar when the exclusion $project is partially on meta. For example, after just the suggested optimization:

      {$unpackBucket: {exclude: [], metaField: "myMeta"}},
      {$project : {myMeta.a : 0, x: 0}}
      --->
      {$project : {meta.a : 0}}
      {$unpackBucket: {exclude: [], metaField: "myMeta"}},
      {$project :

      {x: 0}

      }

            Assignee:
            Hana Pearlman
            Reporter:
            Hana Pearlman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: