Mongorestore to a different database

我只是一个虾纸丫 提交于 2019-12-18 11:15:42

问题


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


回答1:


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}.*"



回答2:


In addition to the answer of Blakes Seven, if your databases use authentication I got this to work using the --uri option, which requires a recent mongo version (>3.4.6):

mongodump --uri="mongodb://$sourceUser:$sourcePwd@$sourceHost/$sourceDb" --gzip --archive | mongorestore --uri="mongodb://$targetUser:$targetPwd@$targetHost/$targetDb" --nsFrom="$sourceDb.*" --nsTo="$targetDb.*" --gzip --archive


来源:https://stackoverflow.com/questions/36321899/mongorestore-to-a-different-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!