我正在尝试使用基于mongo ObjectId的模数和使用nodejs本机驱动程序将工作划分为工作者。我的问题是:
var hash = parseInt( allHashes[i]._id , 16 );
console.log(hash % 2)
结果总是0.这可能是真的吗? mongo是否只生成了对象或我做错了什么?
THX!
答案 0 :(得分:0)
所以我终于明白了。在JS中将ObjectId转换为int将导致大于maxint的数字,因此它可能以多个0结尾。 解决方案是仅转换最后3个字节(计数器,以随机值开始)。所以:
var hash = parseInt( allHashes[i]._id.substr( 17, 6 ) , 16 );
现在分发适合于分工人员之间的工作。