Search code examples
mongodbmongorestore

Mongorestore to a different database


In MongoDB, is it possible to dump a database and restore the content to a different database? For example like this:

mongodump --db db1 --out dumpdir
mongorestore --db db2 --dir dumpdir

But it doesn't work. Here's the error message:

building a list of collections to restore from dumpdir dir

don't know what to do with subdirectory "dumpdir/db1", skipping...

done


Solution

  • You need to actually point at the "database name" container directory "within" the output directory from the previous dump:

    mongorestore -d db2 dumpdir/db1
    

    And usually just <path> is fine as a positional argument rather than with -dir which would only be needed when "out of position" i.e "in the middle of the arguments list".

    p.s. For archive backup file (tested with mongorestore v3.4.10)

    mongorestore --gzip --archive=${BACKUP_FILE_GZ} --nsFrom "${DB_NAME}.*" --nsTo "${DB_NAME_RESTORE}.*"