代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

MongoDB的Map/Reduce是否总是以浮点形式返回结果?

  •  3
  • nonopolarity  · 技术社区  · 14 年前

    我使用的是Mongoid,它位于Ruby MongDB驱动程序之上。即使我的地图发出 parseInt(num) 而Reduce的回报也是 ,最终结果仍然是浮点数。

    这是MongoDB特有的吗?有没有办法改成整数?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Niels van der Rest    14 年前

    这个 parseInt 函数正式采用字符串作为参数。这个字符串被当作一个整数来解析,因此忽略了第一个非数字字符之后的所有内容。如果您提供一个浮点数,在解析它之前,它将被转换成一个字符串。

    这个 帕塞因特 函数返回 Number ,不是整数。 数字 仅数字数据类型

    那么一会儿呢 将删除任何小数,数据类型不变。因此Mongoid不知道是将结果视为浮点还是整数。您负责将结果转换为整数,如中所示 this example

    更新

    NumberLong 类型,表示64位整数。如果你回来 new NumberLong(num) 在reduce函数中,Mongoid可以将其视为整数类型。