【问题标题】:How to use mongodump for 1 collection如何将 mongodump 用于 1 个集合
【发布时间】:2013-05-02 20:28:18
【问题描述】:

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

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

【问题讨论】:

    标签: mongodb mongodump


    【解决方案1】:

    我认为只是:

    mongodump --db=<old_db_name> --collection=<collection_name> --out=data/
    
    mongorestore --db=<new_db_name> --collection=<collection_name> data/<db_name>/<collection_name>.bson
    

    另请参阅文档 herehere

    顺便说一句,将集合从一个数据库移动到另一个数据库的另一种方法是使用renameCollection

    db.runCommand({renameCollection:"<old_db_name>.<collection_name>",to:"<new_db_name>.<collection_name>"})
    

    这里有一些相关的 SO 线程:

    希望对您有所帮助。

    【讨论】:

    • 谢谢,它给了我以下错误:错误:缺失; before 语句 (MongoSession#1) 用于您给出的第一个命令。
    • 这是我正在尝试的命令:mongodump --db=DevDB --collection=Functions_List --out=data/
    • 您需要在操作系统提示符下运行第一个命令,而不是 mongo shell。
    • 处理副本集的,请看this answer..
    【解决方案2】:

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

    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 documentation

    【讨论】:

    • 对于任何需要恢复的人:mongorestore --gzip --db
    【解决方案3】:

    dump 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
      

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

    【讨论】:

      【解决方案4】:

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

      然后按照通常的方式恢复它。

      【讨论】:

      • 这是要走的路,如果它是你正在处理的副本集......
      【解决方案5】:

      以下是如何在 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多