Подтвердить что ты не робот

Mongorestore не знает, что делать с файлом "db/collection.bson", пропуская

Я хочу перенести мой 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
4b9b3361

Ответ 1

Кажется, нужно также указать -d в 3.0 следующим образом:

mongorestore -d db db

Ответ 2

Этот ответ напрямую не связан с вашим вопросом, но тот же вывод ошибки вы получите, пытаясь восстановить данные mongo, сбрасывать --archive, доступный с версии MongoDB 3.2. Чтобы решить эту проблему, вам нужно указать параметр --gzip в вашей команде mongorestore. Пример:

mongorestore -d destination_db --gzip /path/to/source/db

Ответ 3

С 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

чтобы убедиться, что коллекции заполнены должным образом.

Ответ 4

Попробуйте это.

mongorestore -db dataBaseName dataBasePath