-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
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 :
}