繁体   English   中英

MongoDB Compass如何处理int64?

[英]How does MongoDB Compass deal with int64?

我已经阅读了有关int64的官方文档,我需要在int64中使用NumberLong包装器。 但是我发现没有NumberLong可以使用一些特殊值: 在此处输入图片说明

在我的图像中,我认为MongoDB Compass会将1128505640310804481像Javascript一样对待,并使用回合1128505640310804500(这是我从Javascript得到的)。 DB中的数据显示在int64中,因此我认为1128505640310804481正确存储为int64。 由于1128505640310804500不等于1128505640310804481,我想我应该找不到匹配我的过滤器的数据,但是MongoDB Compass给出了结果。

所以我的问题是:当我如图所示在MongoDB Compass Filter中输入int64时,它如何处理int64以及为什么它可以匹配存储在数据库中的正确int64数据?

当我如图所示在MongoDB Compass Filter中输入int64时,它如何处理int64?为什么它可以匹配存储在数据库中的正确int64数据?

首先,MongoDB可以存储64位整数值,因为数据以BSON(二进制序列化格式)存储。 这样可以解决服务器中的问题。 另请参阅BSON类型

现在,对于MongoDB Compass,它可以通过自动广播识别数字的类型(int32,int64或Double)。 当将int32编辑为超过32位的值并且该值通过Number.isSafeInteger的+/-时, 它将在编辑器中检测到该值,并将其转换为int64

实际上,进行类型检查的MongoDB Compass的一部分已开源。 请参阅类型检查器代码: mongodb-js / hadron-type-checker / blob / master / src / type-checker.js NPM软件包是hadron-type-checker

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM