gpt4 book ai didi

java - MongoDB group() 函数中的 Long 累加器而不是 Double

转载 作者:可可西里 更新时间:2023-11-01 10:34:56 24 4
gpt4 key购买 nike

我正在通过官方 Java API 使用 MongoDB。我可以毫不费力地存储和检索 Long 值。但是,当我尝试使用 group() 函数累积这些值时,JavaScript 解释器将所有内容都转换为 Double,最终结果为 Double。

这是我的组命令:

{
...
initial: { count: 0 },
reduce: "function (o, a) { a.count += o.count; }"
}

有没有办法告诉解释器 count 实际上是一个 Long?像 count: 0Lcount: Long(0) 这样的东西?还是应该做Java端的积累?

最佳答案

这是因为 group 命令实际上运行的是 map/reduce,而 map/reduce 是一个 javascript。在 javascript 中,默认数字类型是 double ,因此它返回 double 。

所以如果你想在组命令结果中看到 long,你可以用 NumberLong(..) 包装你的数字:

{
...
initial: { count: new NumberLong(0) },
reduce: "function (o, a) { a.count += new NumberLong(o.count); }"
}

没有对此进行测试,但几乎可以肯定它应该可以工作。

关于java - MongoDB group() 函数中的 Long 累加器而不是 Double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314300/

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