[SERVER-23033] Implement getDependencies for $redacts that don't use $$DESCEND Created: 09/Mar/16 Updated: 06/Dec/22 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Aggregation Framework |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Mathias Stearn | Assignee: | Backlog - Query Optimization |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | optimization | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Query Optimization
|
| Participants: |
| Description |
|
Currently $redact always says that it doesn't know which fields it needs. This is true if there are any uses of $$DESCEND in the expression since all fields are relative to $$CURRENT which is rebound in each subobject. However, if the $redact expression only uses $$KEEP and $$PRUNE (ie only whole-object redaction) we never rebind $$CURRENT and it is always $$ROOT. In that case we are able to know all of our dependencies which can result in much more efficient execution. |