所有ObjectId都是mongo偶数吗?

时间:2016-04-14 17:40:40

标签: node.js mongodb

我正在尝试使用基于mongo ObjectId的模数和使用nodejs本机驱动程序将工作划分为工作者。我的问题是:

var hash = parseInt( allHashes[i]._id , 16 );
console.log(hash % 2)

结果总是0.这可能是真的吗? mongo是否只生成了对象或我做错了什么?

THX!

1 个答案:

答案 0 :(得分:0)

所以我终于明白了。在JS中将ObjectId转换为int将导致大于maxint的数字,因此它可能以多个0结尾。 解决方案是仅转换最后3个字节(计数器,以随机值开始)。所以:

var hash = parseInt( allHashes[i]._id.substr( 17, 6 ) , 16 );

现在分发适合于分工人员之间的工作。