0

阅读有关 MongoDB长数据类型的页面- 它说我创建了一个这样的:

var myLong = new Long(low, high);

其中低和高是较大的 64 位数字的有符号 32 位部分......

我使用node-bigint将以下数字作为字符串

'164150943396226415094339622641509433'

我如何转换这个 64 位的!?!将字符串转换为 Long 构造函数所需的 32 位低位和高位...

另外 - 使用字符串或 Long 索引的 Mongo $gt 搜索会更快吗?

在此先感谢 - 我已经超出了我的深度......

编辑 1

对 - 在原始(更模糊)线程上 - 答案是这个数字对于 64 位来说太大了......

所以-我的问题是,将这个数字分成两部分保存和搜索的最快方法是什么,所以原始字符串变为:

'164150943396226415' and '094339622641509433'

我应该把它们变成 Longs(在这种情况下,前导零呢)还是字符串搜索快/慢......

你可以重新表述这个问题:

在 MongoDB 中,Long 或 String 会更快:

'164150943396226415'

再次感谢....

4

1 回答 1

0

正确的!

我一直在和我的朋友交谈——他已经解释了我所有被误导的假设......

数字 '164150943396226415094339622641509433' 对于 64 位来说太大了...

他说搜索字符串总是会逐个字符地进行,并且将数字拆分为实际 64 位数字的 2 互补对更快......

所以,对于上面的数字,我们有:

var higher = Long.fromString('1641509433962264150');
var lower = Long.fromString('94339622641509433');

然后做一个:

( this.higher > that.higher ) && (this.lower > that.lower)

很抱歉问了一个基于我自己的误解的问题:)

于 2012-08-16T13:13:27.637 回答