如何在node.js中从String创建MongoDB长数据类型

时间:2012-08-15 23:24:14

标签: node.js mongodb

阅读关于MongoDB Long Datatype的页面 - 它说我创建了一个这样的:

var myLong = new Long(low, high);

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

我使用node-bigint

将以下数字作为字符串
'164150943396226415094339622641509433'

如何转换此64位!?!串行到Long构造函数所需的32位低位和高位......

此外 - 索引的Mongo $ gt搜索是否会更快地使用字符串或Long?

提前致谢 - 我不在我的身边...

编辑1

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

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

'164150943396226415' and '094339622641509433'

我应该把它们变成Longs(在这种情况下,前导零点怎么样)或者字符串搜索速度快/慢......

你可以重新说出这个问题:

在MongoDB中,Long或String会更快:

'164150943396226415'

再次感谢....

1 个答案:

答案 0 :(得分:0)

右键!

我一直在跟我的朋友说话 - 他解释了我所有误导的假设......

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

他说搜索字符串将始终按字符串char并且将数字拆分为2对实际64位数字更快...

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

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

然后做一个:

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

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