Ответ 1
Кажется, нужно также указать -d в 3.0 следующим образом:
mongorestore -d db db
Я хочу перенести мой mongodb с 2.0 на 3.0. Поэтому я пошел за официальным документом, чтобы использовать mongodump для резервного копирования моих dbs и использовать mongorestore для восстановления dbs до mongodb 3.0.
Но когда я использую mongorestore, он говорит мне: "Не знаю, что делать с файлом" db/collection.bson ", пропуская...".
Нечего делать. Как я могу перенести свои dbs?
Спасибо.
EDIT: Вот мои шаги.
Использовать mongodump в mongodb 2.0
mongodump
tree dump
db
├── collection-1.bson
├── collection-2.bson
├── collection-3.bson
├── ...
Скопируйте каталог db на сервер mongodb 3.0.
На сервере mongodb 3.0 вызовы mongorestore db
Но я получаю эту ошибку:
mongorestore db
2015-03-10T09:36:26.237+0800 building a list of dbs and collections to restore from db dir
2015-03-10T09:36:26.237+0800 don't know what to do with file "db/collection-1.bson", skipping...
2015-03-10T09:36:26.237+0800 don't know what to do with file "db/collection-2.bson", skipping...
2015-03-10T09:36:26.237+0800 don't know what to do with file "db/collection-3.bson", skipping...
...
2015-03-10T09:36:26.237+0800 done
Кажется, нужно также указать -d в 3.0 следующим образом:
mongorestore -d db db
Этот ответ напрямую не связан с вашим вопросом, но тот же вывод ошибки вы получите, пытаясь восстановить данные mongo, сбрасывать --archive
, доступный с версии MongoDB 3.2. Чтобы решить эту проблему, вам нужно указать параметр --gzip
в вашей команде mongorestore
. Пример:
mongorestore -d destination_db --gzip /path/to/source/db
С mongorestore путь этих файлов дампа является обязательным параметром; у вас есть это право до сих пор, указав db.
Это также хорошая идея, как сказал Питер, чтобы указать базу данных для восстановления файлов дампа в коллекциях с помощью/d-переключателя.
Что-то, чего я не понимал, борясь с этим, заключается в том, что монгон должен бежать, чтобы уничтожить реставрацию. Если у вас работает более 1 mongod, вы обязательно должны указать порт с ключом -port. Код, который работал у меня, был:
mongod --dbpath config --port 27019 --logpath log.config --logappend
И в другом CLI:
mongorestore --port 27019 /d config config
за которым следует
mongo localhost:27019/config
чтобы убедиться, что коллекции заполнены должным образом.
Попробуйте это.
mongorestore -db dataBaseName dataBasePath