gpt4 book ai didi

javascript - Mongo shell 中的 NumberLong 算法

转载 作者:可可西里 更新时间:2023-11-01 09:14:36 26 4
gpt4 key购买 nike

如何在 Mongo shell 中对 NumberLong 值执行精确运算?据我了解,Javascript 只有一种数字类型 - number - 通常限于 54 位浮点精度。

使用(例如)标准加法的直接算术显示将强制降级为低精度类型:

> NumberLong("123456789012345678")+NumberLong("1") 
123456789012345680
> NumberLong("123456789012345678")+NumberLong("2")
123456789012345680

我可以看到如何使用字符串表示形式提取 NumberLong 的部分,但这似乎效率低下,并且对于递增或除法等算术运算没有用处。

最佳答案

MongoDB 使用 BSON 64 bit Int type ( Mongo type code 18 ) 对于 NumberLong。 db 内核可以通过执行更新操作对这些元素(用 C++ 编写的内核)执行精确的算术运算,但如果你想在 javascript shell 中执行此操作,你将需要一个像 this one 这样的库。来自谷歌。

关于javascript - Mongo shell 中的 NumberLong 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592825/

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