当前位置:  开发笔记 > 编程语言 > 正文

MongoDB的Map/Reduce总是返回浮点数的结果吗?

如何解决《MongoDB的Map/Reduce总是返回浮点数的结果吗?》经验,为你挑选了1个好方法。

我正在使用Mongoid,它位于Ruby MongDB驱动程序之上.即使我的Map的发出给出了一个parseInt(num),而Reduce的回报也给了a parseInt(num),最终的结果仍然是浮点数.

这是MongoDB特有的吗?任何使它成为整数的方法?



1> Niels van de..:

parseInt函数正式将字符串作为参数.解析此字符串就好像它是一个整数,因此忽略了第一个非数字字符后的所有内容.如果提供浮点数,则在解析之前将其转换为字符串.

parseInt函数返回一个Number,而不是一个整数.Number是JavaScript中唯一的数字数据类型 ; 整数和浮点数之间没有区别.

因此,虽然parseInt将删除任何小数,但数据类型不会更改.因此,Mongoid不知道是将结果视为浮点数还是整数.您负责将结果转换为整数,如本例所示.

更新

我遇到了NumberLong类型,它代表一个64位整数.如果new NumberLong(num)从reduce函数返回,Mongoid可能会将其视为整数类型.

请注意,您需要MongoDB 1.6才能在MongoDB Shell中使用它.我不知道Mongoid是否支持它.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有