Восстановление из неизвестного имени базы данных в другую базу данных с использованием --nsFrom и --nsTo - PullRequest
0 голосов
/ 30 августа 2018

После устаревания --db мне не удалось восстановить архив с неизвестным именем базы данных в существующую базу данных с известным именем.

Пока это моя попытка, которая не работает, потому что мне нужно знать имя исходной базы данных: mongorestore --archive=/path/to/my.archive --nsFrom '[UNKNOWN DATABASE NAME].*' --nsTo '[KNOWN DATABASE NAME].*' --drop

Если я использую --nsFrom '*.*' --nsTo '[KNOWN DATABASE NAME].*', я получаю сообщение о том, что количество подстановочных знаков должно совпадать.

1 Ответ

0 голосов
/ 11 октября 2018

РЕДАКТИРОВАТЬ: оригинальный ответ ниже "работает", но восстановит коллекции с префиксом с неизвестным именем базы данных.

Если вы хотите восстановить коллекции без префикса имени базы данных, используйте метод $.

mongorestore --archive=/path/to/my.archive --nsFrom '$prefix$.$suffix$' --nsTo '[KNOWN DATABASE NAME].$suffix$' --drop

Оригинальный ответ:

Количество звездочек должно совпадать в аргументах --nsFrom и --nsTo. Если вы не знаете имя пространства имен, использованного для создания архива, просто используйте '*', который сопоставит все пространства имен, например:

mongorestore --archive=/path/to/my.archive --nsFrom '*' --nsTo '[KNOWN DATABASE NAME].*' --drop
...