如何使用mongodump
将单个集合从一个数据库移动到另一个数据库?
我应该如何使用命令及其选项?
答案 0 :(得分:107)
我认为这只是:
mongodump --db=<old_db_name> --collection=<collection_name> --out=data/
mongorestore --db=<new_db_name> --collection=<collection_name> data/<db_name>/<collection_name>.bson
顺便说一下,将集合从一个数据库移动到另一个数据库的另一种方法是使用renameCollection
:
db.runCommand({renameCollection:"<old_db_name>.<collection_name>",to:"<new_db_name>.<collection_name>"})
以下是一些相关的SO主题:
希望有所帮助。
答案 1 :(得分:16)
mongodump --host <hostname-of-mongoserver> --db <db-name> --username <dbuser-name> --password <password> --gzip --out </backup/location/>
mongodump --host <hostname-of-mongoserver> --db <db-name> --collection <collection-name> --username <dbuser-name> --password <password> --gzip --out </backup/location/>
答案 2 :(得分:7)
dump mongodb的非常基本的命令。
转储所有收藏品
mongodump
仅转储特定数据库
mongodump --db=DB_NAME
使用用户名&amp ;;转储数据库密码
mongodump -u=USERNAME -p=PASSWORD --db=DB_NAME
从其他主机转储
mongodump --host HOST_NAME/HOST_IP --port HOST_PORT --out {YOUR_DIRECTOTY_PATH} --db=DB_NAME
只有在允许的情况下才能从其他主机转储。
答案 3 :(得分:0)
以下是在Windows 10上如何使用mongodump.exe
导出单个集合的示例:
"D:\Program Files\MongoDB\Server\4.0\bin\mongodump.exe" -h localhost --port 27017 -d meteor --collection users -o meteor_users
导出的集合为users
,数据库为meteor
,主机为localhost
,端口为27017
。
输出将存储在目录meteor_users
中。
还原应使用如下命令:
"D:\Program Files\MongoDB\Server\4.0\bin\mongorestore.exe" -d meteor -c users users.bson
答案 4 :(得分:0)
如果它是一个副本集并且您想使用 --uri
,您应该像这样使用它,因为文档指出您在使用 --uri
时无法指定某些选项
mongodump --uri "mongodb://user:password@mongo-en-1.example.io:27017,mongo-en-2.example.io:27017,mongo-en-3.example.io:27017/$Databasename?replicaSet=$replicasetname&authSource=admin" --collection $collectionname
然后按照通常的方式恢复它。