Как импортировать сгруженный Mongodb?
Сбросил MongoDB успешно:
$ mongodump -h ourhost.com:portnumber -d db_name01 -u username -p
Мне нужно импортировать или экспортировать его в testerver и бороться с ним, пожалуйста, помогите мне разобраться.
Я пробовал несколько способов:
$ mongoimport -h host.com:port -c dbname -d dbname_test -u username -p
connected to host.
Password: ...
Дает эту ошибку:
assertion: 9997 auth failed: { errmsg: "auth fails", ok: 0.0 }
$ mongoimport -h host.com:port -d dbname_test -u username -p
Дает эту ошибку:
no collection specified!
Как указать, какую коллекцию использовать? Что я должен использовать для -d? Что я хотел бы загрузить или что я хочу использовать в качестве теста? Я хотел бы импортировать полный DB не только его сбор.
Ответы
Ответ 1
Другим символом mongodump
является mongorestore
(а для mongoimport
- mongoexport
) - основное отличие заключается в формате файлов, созданных и понятых инструментами (dump
и restore
читать и писать BSON файлы; export
и import
иметь дело с форматами текстовых файлов: JSON, CSV, TSV.
Если вы уже запустили mongodump
, вы должны иметь каталог с именем dump
, с подкаталогом для каждой базы данных, который был сброшен, и файл в этих каталогах для каждой коллекции. Затем вы можете восстановить это командой:
mongorestore -h host.com:port -d dbname_test -u username -p password dump/dbname/
Предполагая, что вы хотите поместить содержимое базы данных dbname
в новую базу данных с именем dbname_test
.
Ответ 2
Когда вы выполните mongodump
, он будет выгружен в двоичном формате. Вам нужно использовать mongorestore
для "импорта" этих данных.
Mongoimport
предназначен для импорта данных, которые были экспортированы с помощью mongoexport
Ответ 3
Возможно, вам придется указать базу данных аутентификации
mongoimport -h localhost:27017 --authenticationDatabase admin -u user -p -d database -c collection --type csv --headerline --file awesomedata.csv