Как выполнить целочисленную арифметику в оболочке mongodb?

Есть ли способ выполнить целочисленную арифметику на двух NumberInt или NumberLongs в MongoDB mapreduce Javascript или в оболочке? Как вы видите, я получаю:

> typeof (NumberInt(1) + NumberInt(1))
number

# (and this is here sort of just to gripe)
> NumberLong(2) == NumberInt(2)
false
> 2==NumberLong(2)
true
> 2==NumberInt(2)
true

Соответствующий:

1 ответ

Поскольку они являются фактически объектами, используйте их методы:

var num1 = NumberLong(2);
var num2 = NumberInt(2);

num1.toNumber() == num2.toNumber()

Это вернет true. И точно так же:

var num1 = NumberLong(2);
var num2 = NumberInt(3);

num1.toNumber() == num2.toNumber()

Возвращает false поскольку они не равны:

num1.toNumber() < num2.toNumber()

Также действителен как true

Таким образом, вам в основном нужно использовать метод, чтобы сделать кастинг таким образом.

licensed under cc by-sa 3.0 with attribution.