У меня была сегментированная коллекция в MongoDB со 100 документами, разделенными на два сегмента в соотношении 100: 0, т.е. 100 документов в сегменте 1 и 0 документов в сегменте 2. Я выполнил sh .splitAt () следующим образом *
mongos> sh.splitAt("test.col", {AGE:50})
{
"ok" : 1,
"operationTime" : Timestamp(1594623118, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1594623125, 4),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
Это было сделано с целью разделения документов в соотношении 50:50, т.е. 50 документов в сегменте 1 и 50 в сегменте 2. Когда я запускаю команду sh .status (), отображается следующее
mongos > sh.status()
....other data
test.col
shard key: { "AGE" : 1 }
unique: false
balancing: true
chunks:
s0 1
s1 1
{ "AGE" : { "$minKey" : 1 } } -->> { "AGE" : 50 } on : shard1 Timestamp(3, 0)
{ "AGE" : 50 } -->> { "AGE" : { "$maxKey" : 1 } } on : shard2 Timestamp(3, 1)
Таким образом, видно, что от 1 до 50 находится в сегменте 1, а с 50 - в сегменте 2. Но когда я проверяю getShardedDistribution (), он не показывает документов в сегменте 1.
mongos > db.col.getShardDistribution()
Shard s0 at s0/localhost:37017,localhost:37018,localhost:37019
data : 0B docs : 0 chunks : 1
estimated data per chunk : 0B
estimated docs per chunk : 0
Shard s1 at s1/localhost:47017,localhost:47018,localhost:47019
data : 5KiB docs : 100 chunks : 1
estimated data per chunk : 5KiB
estimated docs per chunk : 100
Totals
data : 5KiB docs : 100 chunks : 2
Shard s0 contains 0% data, 0% docs in cluster, avg obj size on shard : 0B
Shard s1 contains 100% data, 100% docs in cluster, avg obj size on shard : 53B
Почему это неправильно перенаправлено? Что мне здесь не хватает? Может ли кто-нибудь мне помочь