-
Type: New Feature
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Aggregation Framework
-
Labels:None
-
Query Optimization
There are cases where MongoDB's behavior is inconsistent with a user's expectation and in such cases, it would be helpful if the user could force the aggregation framework to return an error - instead of having operations proceed.
An example is the power function:
db.xy.aggregate({"$project":{"pow":{ "$pow": [ -2, 4.4 ] }}}) { "result": [ { "_id": ObjectId("56d4699e3a0b52029321e0d5"), "pow": NaN }, ], "ok": 1 }
Other relational databases - e.g. MySQL - return an error:
ERROR 1690 (22003): DOUBLE value is out of range in 'pow(-(2),-(4.4))'
It would be helpful if I could write something like:
{ "$project": { "pow": { "$cond": [ { "$eq": [ { "$pow": [ -2, 4.4 ] }, NaN ] }, { "$throw": "invalid operation" }, "good" ] } } }