MongoDb,克隆数据库错误:非法参数组合:无法指定 --db 和 --uri

问题描述

我正在尝试在同一个集群中复制一个名为 database_A数据库
结果应该是一个名为 database_B 的新数据库,其中包含完全相同的数据。

我正在尝试按照说明 here 进行操作。

它解释了如何在本地执行此操作:

  1. 使用 mongodump 将测试数据库转储到存档 mongodump-test-db:

mongodump --archive="mongodump-test-db" --db=test

  1. 使用带有 --nsFrom 和 --nsTo 的 mongorestore 从存档中恢复(更改数据库名称):

mongorestore --archive="mongodump-test-db" --nsFrom='test.' --nsTo='examples.'

为了在集群中达到同样的结果,它说:

根据需要包含其他选项,例如指定 uri 或 主机、用户名、密码和身份验证数据库

但是,当我尝试添加 uri 以实现第一步时:

mongodump --uri mongodb+srv://hihi:password@cluster0.fklgt.mongodb.net --archive="mongodump-test-db" --db=test_db

我收到此错误

illegal argument combination: cannot specify --db and --uri

知道如何解决这个问题吗?

解决方法

您必须在类似 URI 的连接中添加 db uri/[db]

mongodb+srv://hihi:password@cluster0.fklgt.mongodb.net/test_db


mongodump --uri mongodb+srv://hihi:password@cluster0.fklgt.mongodb.net/test_db --archive="mongodump-test-db" 

https://docs.mongodb.com/v3.6/reference/program/mongodump/#cmdoption-mongodump-uri

/database 可选。如果连接字符串包含 username:password@ 形式的身份验证凭据,则要进行身份验证的数据库的名称。如果未指定 /database 并且连接字符串包含凭据,则驱动程序将对 admin 数据库进行身份验证。另请参阅 authSource。

https://docs.mongodb.com/v3.6/reference/connection-string/