Скажем, я установил минимальный и максимальный ключ для осколков, используя метку диапазона. Позже, я узнаю, что диапазон тегов, который я определил, не будет балансировать. Затем мне нужно изменить значение диапазона тегов.Диапазон обновления тегов на осколке диапазона MongoDB
У меня есть поиск в документах MongoDB, упоминается только добавление и удаление тегов, нет упоминания о значении диапазона изменения/изменения тега.
Тогда я сделать некоторый эксперимент путем обновления значения в БД сбор конфигурации осколке
mongos> db.tags.find()
{ "_id" : { "ns" : "test.lab.range", "min" : { "_id" : 1 } }, "ns" : "test.lab.range", "min" : { "_id" : 1 }, "max" : { "_id" : 100 }, "tag" : "rangeTime1" }
{ "_id" : { "ns" : "test.lab.range", "min" : { "_id" : 100 } }, "ns" : "test.lab.range", "min" : { "_id" : 100 }, "max" : { "_id" : 200 }, "tag" : "rangeTime2" }
mongos> db.tags.update({_id:{ "ns" : "test.lab.range", "min" : { "_id" : 100 } }},{$set:{min : {_id : 150}}})
mongos> db.tags.update({_id:{ "ns" : "test.lab.range", "min" : { "_id" : 1 } }},{$set:{max : {_id : 150}}})
mongos> db.tags.find()
{ "_id" : { "ns" : "test.lab.range", "min" : { "_id" : 1 } }, "ns" : "test.lab.range", "min" : { "_id" : 1 }, "max" : { "_id" : 150 }, "tag" : "rangeTime1" }
{ "_id" : { "ns" : "test.lab.range", "min" : { "_id" : 100 } }, "max" : { "_id" : 200 }, "min" : { "_id" : 150 }, "ns" : "test.lab.range", "tag" : "rangeTime2" }
Это хорошо работает, но теги идентификатор не обновляется. Обратите внимание, что даже когда min обновляется до 150 в диапазонеTime2, идентификатор не обновляется, что делает сбор тегов непоследовательным.
Это своего рода грязный, но, к сожалению, это работы.
Это правильный способ обновления диапазона тегов? Есть ли другие лучшие способы?
Опять же, это вопрос для http://DBA.stackexchange.com –