我在mongodb文档中使用'id'字段,它是'_id'的HASH(由mongo生成的ObjectId字段)。我想在'id'字段中使用RANGE分片。问题如下:
当'shardKey'是一些长字符串(例如64个字符)时,如何为每个分片设置范围?
答案 0 :(得分:2)
如果您希望基于散列键分发数据,MongoDB有一种内置方式:
sh.shardCollection("yourDB.yourCollection", { _id: "hashed" })
这样,数据将在您的分片之间随机分布,也可以均匀分布(或非常接近分片)。
请注意,您不能同时拥有逻辑键范围和随机数据。它是一个或另一个,它们是互斥的。所以:
{ fieldName: "hashed" }
作为分片键定义。