问题描述
我正在尝试在同一个集群中复制一个名为 database_A
的数据库。
结果应该是一个名为 database_B
的新数据库,其中包含完全相同的数据。
我正在尝试按照说明 here 进行操作。
它解释了如何在本地执行此操作:
- 使用 mongodump 将测试数据库转储到存档 mongodump-test-db:
mongodump --archive="mongodump-test-db" --db=test
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。