-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Aggregation Framework
-
Labels:
-
Query Optimization
We have the base class ExpressionNary which nicely abstracts away a lot of the parsing and other mechanical parts of the Expression interface for expressions of the form {$expressionName: [array, of, arguments]}. We should have a similar base class for expressions of the form {$expressionName: {arg1: val1, arg2: val2}.
This will also help prevent a class of bugs where an expression forgets to implement serialize, or forgets to optimize it's arguments, etc.