Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-55668

Allow rewrite to push exclusion meta projections past $unpackBucket

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

      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@mongodb.com Hana Pearlman
            Reporter:
            hana.pearlman@mongodb.com Hana Pearlman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: