How to import dumped Mongodb?

32,439

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!

Share:
32,439
YogiZoli
Author by

YogiZoli

Love Rails, TDD with RSpec, CSS3, SCSS, Twitter Bootstrap, HAML, CoffeeScript, Git. Practicing & teaching Yoga Everyday.

Updated on July 09, 2022

Comments

  • YogiZoli
    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
    cschuff almost 3 years
    also see next answer: --authenticationDatabase admin did the trick for me.
  • venimus
    venimus about 2 years
    you might also need the archive param if it is gziped mongorestore --db database --drop --gzip --archive=archive.tar.gz