Details
-
New Feature
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
Query Optimization
Description
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"
|
]
|
}
|
}
|
}
|