|
@@ -45,6 +45,16 @@ klass._coerceToNumber = function _coerceToNumber(value) { //NOTE: replaces .coer
|
|
|
return 0;
|
|
|
case "number":
|
|
|
return value;
|
|
|
+ case "object":
|
|
|
+ switch (value.constructor.name) {
|
|
|
+ case "Long":
|
|
|
+ return parseInt(value.toString(), 10);
|
|
|
+ case "Double":
|
|
|
+ return parseFloat(value.value, 10);
|
|
|
+ default:
|
|
|
+ throw new Error("can't convert from BSON type " + value.constructor.name + " to int; codes 16003, 16004, 16005");
|
|
|
+ }
|
|
|
+ return value;
|
|
|
default:
|
|
|
throw new Error("can't convert from BSON type " + typeof(value) + " to int; codes 16003, 16004, 16005");
|
|
|
}
|