拆分异常:块映射指向不正确的块

时间:2013-09-08 11:20:28

标签: mongodb

我目前正在学习mongodb。我有一个在student_id键上分片的集合。在尝试使用分片集合上的边界执行split命令时,我得到以下异常“ exception:Chunk map指向不正确的块

mongos> db.runCommand( { split: "test.grades" , bounds: [ Object(0), Object(10) ] } )

{ "code" : 13141, "ok" : 0, "errmsg" : "exception: Chunk map pointed to incorrect chunk" }

注意:我此时尚未加载数据,这意味着尚未进行任何拆分。

我能够通过使用绑定的替代方法来实现这一点,例如:

db.runCommand( { split: "test.grades" , middle:{student_id:10000} } )

我也知道'标签识别分片'以及它如何用于这种特殊情况。我唯一无法理解的是为什么拆分不使用'bounds'选项。

任何指针都将不胜感激!

1 个答案:

答案 0 :(得分:1)

orid是正确的。要按边界分割,必须使用散列分片键,并且只能在现有块的最大值和最小值上使用它。在您的情况下,数据尚未出现,因此没有现有的块。

同样要使用边界,您需要指定一个如下的键:

db.runCommand( { split: "test.grades" , bounds: [ {student_id: Object(0)}, {student_id: Object(10)} ] } )