Mongodb – How restore from .gz backup with new database name using mongorestore r3.2.9

backupmongodbrestore

I'm trying to backup/restore mongodb database to/from .gz files as sample script here

#01 create .gz backup - ok for r3.2.9 and r3.4.10 
mongodump --db ${DB_NAME} --gzip --archive=${BACKUP_FILE_GZ}

#02 restore from .gz file - NOT ok for r3.2.9
mongorestore --gzip --archive=${BACKUP_FILE_GZ} --nsFrom "${DB_NAME}.*" --nsTo "${DB_NAME_RESTORE}.*"

Step 01 i.e. back up is good for both mongodb version r3.2.9 and r3.4.10; though step 02 NOT works for r3.2.9

How can I get mongorestore version r3.2.9 to restore from .gz file and be able to rename the database?

p.s.

We have the solution here but that requires the backup to be a folder; my backup files are huge i.e. 1Gb-2Gb so the extraction is too much time-consuming.

Best Answer

With 3.2.x you cannot use --nsFrom or --nsTo parameters. This pair of commands should work in all versions:

mongodump --db ${DB_NAME} --gzip -o ${BACKUP_FILE_GZ}

mongorestore --gzip --db "${DB_NAME_RESTORE}" ${BACKUP_FILE_GZ}/${DB_NAME}

Now you get a directory with gzipped files and you can restore all (or just one) collections to a different database.