MongoDB Переименовать коллекцию в Шардинг - PullRequest
1 голос
/ 30 марта 2012

Как я могу переименовать коллекцию в шардинге mongodb? Потому что я пытался в моем Производственный сервер, он выбросил следующую ошибку только для ваших ссылок.

Мое требование: мы должны добавить еще несколько полей со значением в существующую коллекцию. Но в процессе производства мы не можем нарушить сбор данных, основанный на трафике, и в любое время запрос приходит от участника одновременно. Таким образом, мы запланировали заполнить все записи от sql до mongo в другой коллекции, а затем переименовать коллекцию и сделать ее производственной. это наш план. Но мы не можем пойти дальше. Следующая ошибка, которую мы получили.

db.clientdetails.renameCollection( "clientdetails_bkup" ); {
            "assertion" : "You can't rename a sharded collection",
            "assertionCode" : 13138,
            "errmsg" : "db assertion failure",
            "ok" : 0 }

Если это невозможно при использовании шардинга mongodb, поделитесь своим предложением или другим способом решения этой проблемы.

Пожалуйста, предложите, что мы должны сделать дальше?

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Нет способа переименовать осколочную коллекцию.

Вы можете скопировать все документы в новую коллекцию.

Или создайте несколько коллекций на основе еженедельной / периодической даты и используйте в качестве текущей. Затем пусть ваше приложение всегда использует текущее имя по имени и меняет имя при каждом перерыве.

0 голосов
/ 25 января 2019

Это одно из худших ограничений MongoDB. мы не можем переименовать осколочную коллекцию. Mongodb Документ гласит: db.collection.renameCollection () не поддерживается в защищенных коллекциях.

У нас была такая же ситуация, когда мы создали другую временную коллекцию, загрузили данные в эту временную коллекцию. Удалил существующую защищенную коллекцию и создал новую коллекцию с новым именем, а затем снова загрузил данные в новую именованную коллекцию. Этот процесс был очень

...