介绍
我有一个 mongo 集群,里面有几百万个文档。每个文档都有一个字符串 id,如下所示:
00072312e0761c6554c3606b50a21119773f2f7d
我有一种方法可以从 mongo 中检索第一个和最后一个键
最大标识:
find().sort( { _id : -1 } ).limit(1).next()._id
最小身份证:
find().sort( { _id : 1 } ).limit(1).next()._id
问题
现在我想启动固定数量的线程处理数据,并且我想使用 id 索引在线程之间平均分割整个数据集,例如:
数据集 ID(订购者):
key1
key2
key3
key4
通过这个小示例,我希望能够启动 2 个线程,其中一个要处理的线程从 key2(包括)开始并在 key3 上结束,另一个线程从 key3 开始并在 key4 上结束。
问题
对于像这样的给定最大和最小键值,如何计算 key3 的值(中间字符串?)?
min key: 000001177ab8e0cd68586e93664911dbd549ab01
max key: 000724471401ce132f8be806b597cbd6ee9b070e
提前致谢!