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

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

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


person Freewind    schedule 31.03.2011    source источник


Ответы (6)


Вам нужно использовать 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, чтобы получить советы и помощь!

person Justin Jenkins    schedule 31.03.2011

Я использую 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 с выгруженными коллекциями из указанной базы данных. В проводнике это выглядит так:

введите здесь описание изображения

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

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

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

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

введите здесь описание изображения

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

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

person Andrew Orsich    schedule 31.03.2011
comment
Это было действительно полезно. Мне нужна была дополнительная функциональность (резервное копирование на сетевую папку). gist.github.com/adamb0mb/7191353 - person adamb0mb; 28.10.2013
comment
как вы думаете, сколько данных безопасно для дампа? Согласно документу монго рекомендуется a small data set, но я не знаю, как определить small? - person hakunami; 21.08.2015

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

mongorestore dump

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

mongorestore --drop dump

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

person Divyanshu Maithani    schedule 25.08.2016
comment
Странно, я попытался проголосовать за ваш ответ, и он не изменился. В любом случае, mongorestore нужно запускать из командной строки, а не в оболочке mongo. - person Donato; 03.01.2017
comment
Ах да, я забыл упомянуть об этом. - person Divyanshu Maithani; 04.01.2017

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

person will    schedule 31.03.2011

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

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

2. mongorestore.exe --dir ./имя каталога --db имя-базы-данных
(пример: mongorestore --dir ./dbdump --db testdb)

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

person Padmini C    schedule 20.04.2016

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

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

Mongo запросит пароль после этого

person Seljuke    schedule 15.10.2019