[SERVER-30731] Add $expr support in MatchExpression outside of aggregation Created: 18/Aug/17 Updated: 30/Oct/23 Resolved: 05/Oct/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 3.6.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | James Wahlin | Assignee: | Tess Avitabile (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||||||||||||||
| Sprint: | Query 2017-10-02, Query 2017-10-23 | ||||||||||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
All commands that contain MatchExpression filters should support with the exception of partialFilterExpression and upsert which we will ban. |
| Comments |
| Comment by Githook User [ 05/Oct/17 ] |
|
Author: {'email': 'tess.avitabile@mongodb.com', 'name': 'Tess Avitabile', 'username': 'tessavitabile'}Message: |
| Comment by Githook User [ 05/Oct/17 ] |
|
Author: {'email': 'tess.avitabile@mongodb.com', 'name': 'Tess Avitabile', 'username': 'tessavitabile'}Message: |
| Comment by Tess Avitabile (Inactive) [ 29/Sep/17 ] |
|
Moving this ticket back to the In Progress state to work on the second part: enable $expr outside of aggregation. |
| Comment by Githook User [ 29/Sep/17 ] |
|
Author: {'email': 'tess.avitabile@mongodb.com', 'name': 'Tess Avitabile', 'username': 'tessavitabile'}Message: |
| Comment by Githook User [ 29/Sep/17 ] |
|
Author: {'email': 'tess.avitabile@mongodb.com', 'name': 'Tess Avitabile', 'username': 'tessavitabile'}Message: |
| Comment by Tess Avitabile (Inactive) [ 07/Sep/17 ] |
|
Re (1): Sounds good. Re (2): Ah, I see, ExprMatchExpression wants a const boost::intrusive_ptr<ExpressionContext>&, so MatchExpressionParser::parse() should continue to take a const boost::intrusive_ptr<ExpressionContext>&. However, it will require it to be non-null. Re (3): No. For MatchExpressions that require a collator, the MatchExpressionParser will continue to pass them a CollatorInterface*, which it will get from its passed in expCtx. |
| Comment by James Wahlin [ 07/Sep/17 ] |
|
Overall this sounds good. I have a few thoughts / questions:
|
| Comment by Tess Avitabile (Inactive) [ 07/Sep/17 ] |
|
james.wahlin, david.storch, my plan is to do this in two commits. First commit: Second commit: How does this sound? |