Details
-
Improvement
-
Resolution: Won't Fix
-
Major - P3
-
None
-
None
-
Query Optimization
Description
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.