【问题标题】:When using the Mongodump shell, how do you specify the database and collection from a replica set?使用 Mongodump shell 时,如何从副本集中指定数据库和集合?
【发布时间】:2020-12-23 22:53:47
【问题描述】:

我需要从副本集中的特定数据库创建特定集合的 mongodump。我从 Windows 命令外壳发出以下命令:

mongodump --uri="mongodb://dd-domain-dev-shard-0-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-1-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-2-abcde.azure.mongodb.net:27017/?replicaSet=dd-domain-dev-shard-0" --db=TargetDatabase_dev --collection=abcCollection

这样做时会出现以下错误:

error parsing command line options: illegal argument combination: cannot specify --db and --uri

如何创建一个包含数据库和集合的可接受命令?我必须同时指定这两者,因为副本集包含多个数据库,并且我只希望输出文件中包含单个集合。

MongoDb 版本:4.2.11 MongoDump 版本:r4.0.1

【问题讨论】:

  • 删除--uri
  • @Minsky 如果我这样做,mondodump 会尝试连接到我的本地 MongoDb 实例

标签: mongodb mongodump


【解决方案1】:

在 URI 中包含数据库名称。

mongodump --uri="mongodb://dd-domain-dev-shard-0-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-1-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-2-abcde.azure.mongodb.net:27017/TargetDatabase_dev?replicaSet=dd-domain-dev-shard-0"  --collection=abcCollection

如果这不起作用:

mongodump --uri="mongodb://dd-domain-dev-shard-0-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-1-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-2-abcde.azure.mongodb.net:27017/TargetDatabase_dev?replicaSet=dd-domain-dev-shard-0&authSource=admin"  --collection=abcCollection

【讨论】:

    【解决方案2】:

    前面的答案是正确的,但您需要在--uri 字符串中包含大多数选项。

    如果您想将它们保留为虚线选项 (--option),您可以这样做 改用--host

    mongodump --host="dd-domain-dev-shard-0/dd-domain-dev-shard-0-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-1-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-2-abcde.azure.mongodb.net:27017" --db=TargetDatabase_dev 
    --collection=abcCollection
    

    您可能需要进行身份验证,就像这样

    mongodump --host="dd-domain-dev-shard-0/dd-domain-dev-shard-0-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-1-abcde.azure.mongodb.net:27017,dd-domain-dev-shard-2-abcde.azure.mongodb.net:27017/" --db=TargetDatabase_dev --collection=abcCollection --authenticationDatabase admin -u <username> -p <password> 
    

    Here is the relevant MongoDB docs

    【讨论】:

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