gpt4 book ai didi

mongodb - MongoDB Mapreduce 是否总是以 float 形式返回结果?

转载 作者:可可西里 更新时间:2023-11-01 09:28:33 25 4
gpt4 key购买 nike

我正在使用 Mongoid,它位于 Ruby MongDB 驱动程序之上。尽管我的 Map 发出的是一个 parseInt(num),而 Reduce 的返回也返回一个 parseInt(num),但最终结果仍然是 float 。

这是 MongoDB 特有的吗?有什么方法可以让它变成整数吗?

最佳答案

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

parseInt 函数返回 Number ,不是整数。 Number 是 JavaScript 中唯一的数字数据类型;整数和 float 之间没有区别。

因此,虽然 parseInt 会删除所有小数,但数据类型不会改变。因此 Mongoid 不知道将结果视为 float 还是整数。您负责将结果转换为整数,如您在 this example 中所见。 .

更新

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

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

关于mongodb - MongoDB Mapreduce 是否总是以 float 形式返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com