微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Mongo shell中的NumberLong算法

如何在Mongo shell中对NumberLong值执行精确算术?我的理解是Javascript只有一个数字类型 – 数字 – 通常限制为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中执行此操作,则需要像Google这样的库,如this one.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐