将Twitter tweet id字符串排序为MongoDB上的数字

时间:2013-08-24 12:54:44

标签: mongodb sorting twitter biginteger

我想在MongoDB上存储推文,然后通过id查找/订购它们,Twitter API为推文提供两种ID类型,一种作为数字类型,另一种是字符串类型,因为JavaScript(mongo / node)只能有53位整数和Twitter ID使用的不止这些。

如果我将ID存储为数字,ID将被舍入并丢失但是我可以排序并找到标准为“大于”和“小于”的ID。

如果我把ID作为字符串sotre ID ID存储,因为它应该但我找不到(选择)标准为“小于”或“大于”的ID,并且排序是一团糟,因为它是排序“字段”作为字符串,所以“10”显示在“3”之前,因为它在开头有“1”。

我需要存储这些ID,我希望能够使用“less / greater / equal / than”标准选择它们,然后将它们作为数字按“字段”排序......

我怎样才能做到这一点?

非常感谢!

3 个答案:

答案 0 :(得分:1)

使用NumberLong存储64位整数。

答案 1 :(得分:0)

始终可以在数字前加零并将其存储为字符串,例如

000000010
000000003

因此您可以存储长ID并使用更大/更少/相等的条件

答案 2 :(得分:0)

如果您使用的是PHP,请使用:

ini_set('mongo.native_long', 1);