[SERVER-43740] Find()-style projection expressions should optimize a match expression they hold Created: 01/Oct/19 Updated: 06/Dec/22 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Aggregation Framework |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Anton Korshunov | Assignee: | Backlog - Query Optimization |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Assigned Teams: |
Query Optimization
|
||||
| Participants: | |||||
| Description |
|
Currently find()-style $elemMatch and positional expressions cannot optimize a match expression they're constructed with due to fundamental differences in how expression optimization is done in aggregation and match expressions. So, right now this find()-style expressions expected that they will given an already optimized match expression and so do not try to optimize it. Once we have match and aggregation expressions combined, we will have a single uniform way of optimizing an expression and the find()-style expressions will need to be modified to optimize the the match expressions whenever their 'optimize()' method is called. |