如何使用mongodump
将单个集合从一个数据库移动到另一个数据库?
我应该如何使用该命令及其选项?
我认为这只是:
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线程:
希望有帮助。
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/>
用于转储 mongodb 的非常基本的命令。
转储所有集合
mongodump
仅转储特定数据库
mongodump --db=DB_NAME
使用用户名和密码转储数据库
mongodump -u=USERNAME -p=PASSWORD --db=DB_NAME
从另一台主机转储
mongodump --host HOST_NAME/HOST_IP --port HOST_PORT --out {YOUR_DIRECTOTY_PATH} --db=DB_NAME
只有在他们允许的情况下才能从另一台主机转储。
如果它是一个副本集并且您想使用它,--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
然后以通常的方式恢复它。
以下是如何mongodump.exe
在 Windows 10 上导出单个集合的示例:
"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