Как использовать сбрасываемые данные mongodump?

Я использовал mongodump для сброса моей базы данных mongodb, он создал несколько файлов bson в dump/mydb

Но я не знаю, как их использовать. Я попробовал mongoimport, но, похоже, он не может импортировать данные bson. Затем, как использовать эти файлы bson? Как импортировать их в другой mongodb?

Ответ 1

Вам нужно использовать mongorestore, а не mongoimport... который используется для таких вещей, как импорт json, csv и т.д.

Из документов back-up-with-mongodump:

mongodump считывает данные из базы данных MongoDB и создает файлы BSON высокой точности, которые инструмент mongorestore может использовать для заполнения базы данных MongoDB.

mongodump и mongorestore - простые и эффективные инструменты для поддержки копирование и восстановление небольших развертываний MongoDB, но они не идеальны для захват резервных копий больших систем.

Вы можете прочитать больше о mongorestore в документации ниже; Я бы посмотрел и прочитал их, потому что они очень полезны.

http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore

Вы также можете проверить http://learnmongo.com советы и помощь!

Ответ 2

Я использую mongodump, mongorestore для ежедневного резервного копирования и восстановления из резервной копии. У меня есть два файла .bat:
Во-первых, для резервного копирования, где вам нужно просто указать имя базы данных хоста и папку для резервного копирования:

SET host=localhost:27020
SET dbNameToDump=MyDB
SET backupsFolder=Backups

mongodump.exe --host %host% --db %dbNameToDump%

SET date="%date:~10,4%-%date:~4,2%-%date:~7,2%.%time:~0,2%-%time:~3,2%"
cd %backupsFolder%
md %date%

xcopy /e ..\dump %date%

rmdir /s /q ..\dump

Над файлом bat создайте папку с таким именем 2011-03-31.11-17(yyyy-MM-dd.hh-ss) в папке Backups с сохраненными коллекциями из указанной базы данных. В проводнике файлов это выглядит так:

enter image description here

Второй bat файл, который я использую для восстановления указанных дамп файлов (здесь вам также нужно указать имя базы данных и папку с дамп файлами):

SET host=localhost:27020
SET dbNameToRestore=MyDB
SET restoreFolder=Restore

mongorestore.exe --host %host% --db %dbNameToRestore% %restoreFolder%

В проводнике файлов:

enter image description here

Кроме того, я использую расписание Windows для автоматизации процесса резервного копирования.

Надеюсь, информация выше будет полезна для кого-то.

Ответ 3

Как упоминалось в предыдущих ответах, вы должны использовать mongorestore вместо mongoimport. В дополнение к предыдущим ответам, когда ваш mongodb работает, выполните следующую команду, чтобы восстановить дамп из каталога дампа,

mongorestore dump

Это импортирует все коллекции в вашу базу данных mydb. Однако это не удаляет базу данных перед восстановлением. Если вы хотите удалить базу данных перед импортом,

mongorestore --drop dump

Файлы bson в каталоге mydb будут восстановлены как коллекции в базе данных mydb. Для получения дополнительной информации о mongorestore проверьте документацию здесь.

Ответ 4

Используйте mongorestore. mongoimport работает над выходом mongoexport. mongodump и mongorestore работают над двоичными файлами данных, в то время как импорт/экспорт работают на json, csv и т.д. (читаемые человеком форматы)

Ответ 5

Для этого я скопировал папку дампа dbdump (которая содержит файлы bson) в каталог bin mongodb и выполнила приведенные ниже команды в командной строке:

1.   cd "путь к папке bin MongoDB"
  (Пример: cd C:\Program Files\MongoDB\Server\3.2\bin)

2.   Имя файла mongorestore.exe --dir./directory --db имя базы данных
  (Пример: mongorestore --dir./dbdump --db testdb)

Все файлы bson в папке дампа будут импортированы в вашу базу данных. Вы можете проверить это, выполнив следующие команды:
  cd "путь к папке bin MongoDB"
  mongo.exe
  show dbs;

Ответ 6

Для Монго версии 3 и выше используйте команду ниже:

mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/

Монго спросит пароль после этого