89

如何使用mongodump将单个集合从一个数据库移动到另一个数据库?

我应该如何使用该命令及其选项?

4

5 回答 5

146

我认为这只是:

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线程:

希望有帮助。

于 2013-05-02T22:09:46.373 回答
26

取数据库(文档)转储(备份)

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/>

mongodump文件

于 2016-11-02T17:36:58.817 回答
7

用于转储 mongodb 的非常基本的命令。

  1. 转储所有集合

    mongodump
    
  2. 仅转储特定数据库

    mongodump --db=DB_NAME
    
  3. 使用用户名和密码转储数据库

    mongodump -u=USERNAME -p=PASSWORD --db=DB_NAME
    
  4. 从另一台主机转储

    mongodump --host HOST_NAME/HOST_IP --port HOST_PORT  --out {YOUR_DIRECTOTY_PATH} --db=DB_NAME
    

只有在他们允许的情况下才能从另一台主机转储。

于 2016-10-27T06:43:07.873 回答
2

如果它是一个副本集并且您想使用它,--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

然后以通常的方式恢复它。

于 2021-03-08T14:59:55.153 回答
1

以下是如何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
于 2020-11-20T09:13:02.663 回答