How to import dumped Mongodb?
Solution 1
The counterpart to mongodump
is mongorestore
(and the counterpart to mongoimport
is mongoexport
) -- the major difference is in the format of the files created and understood by the tools (dump
and restore
read and write BSON files; export
and import
deal with text file formats: JSON, CSV, TSV.
If you've already run mongodump
, you should have a directory named dump
, with a subdirectory for each database that was dumped, and a file in those directories for each collection. You can then restore this with a command like:
mongorestore -h host.com:port -d dbname_test -u username -p password dump/dbname/
Assuming that you want to put the contents of the database dbname
into a new database called dbname_test
.
Solution 2
You may have to specify the authentication database
mongoimport -h localhost:27017 --authenticationDatabase admin -u user -p -d database -c collection --type csv --headerline --file awesomedata.csv
Solution 3
When you do a mongodump
it will dump in a binary format. You need to use mongorestore
to "import" this data.
Mongoimport
is for importing data that was exported using mongoexport
Solution 4
For anyone else might reach this question after all these years (like I did), and if you are using
- a dump which was created using mongodump
- and trying to restore from a
dump
directory - and going to be using the default port
27017
All you got to do is,
mongorestore dump/
Refer to the mongorestore doc for more info. cheers!
YogiZoli
Love Rails, TDD with RSpec, CSS3, SCSS, Twitter Bootstrap, HAML, CoffeeScript, Git. Practicing & teaching Yoga Everyday.
Updated on July 09, 2022Comments
-
YogiZoli almost 2 years
Dumped a MongoDB successfully:
$ mongodump -h ourhost.com:portnumber -d db_name01 -u username -p
I need to import or export it to a testserver and have struggle with it, please help me figure out.
I tried some ways:
$ mongoimport -h host.com:port -c dbname -d dbname_test -u username -p connected to host. Password: ...
Gives this error:
assertion: 9997 auth failed: { errmsg: "auth fails", ok: 0.0 } $ mongoimport -h host.com:port -d dbname_test -u username -p
Gives this error:
no collection specified!
How to specify which collection to use? What should I use for -d? What I'd like to upload or what I want to use as test out there? I would like to import the full DB not only collection of it.
-
cschuff almost 3 yearsalso see next answer:
--authenticationDatabase admin
did the trick for me. -
venimus about 2 yearsyou might also need the archive param if it is gziped
mongorestore --db database --drop --gzip --archive=archive.tar.gz