我希望从远程mongo数据库中导出一个集合。
在本地,我通过以下mongo命令连接到远程mongo数据库:
mongo mongodb://<shard-01>,<shard-02>,<shard-03>?replicaSet=shard-0 -ssl --authenticationDatabase admin --username admin --password password
通过运行上面的命令,我基本上可以连接到远程数据库并在其中运行查询。
现在,我希望对该数据库进行特定集合的mongoexport。但似乎我找不到正确的语法来做到这一点。
我尝试过
mongoexport mongodb://<shard-01>,<shard-02>,<shard-03>?replicaSet=shard-0 -ssl --authenticationDatabase admin --username admin --password password --collection car --out ./car.json
mongoexport --uri=mongodb://admin:password@<shard-01>,<shard-02>,<shard-03>?replicaSet=shard-0 --collection car --out ./car.json
mongoexport --uri=mongodb://<shard-01>,<shard-02>,<shard-03>?replicaSet=shard-0 --username admin --password password --collection car --out ./car.json
但是这些似乎都不起作用。所有人都抱怨
error connecting to db server: no reachable servers
答案 0 :(得分:1)
mongoexport documentation指出,使用uri时无法指定某些选项:
重要
以下mongoexport选项与--uri选项不兼容。相反,在适用时,将这些选项指定为--uri连接字符串的一部分:
-主机
-端口
-db
-用户名
-密码(在将密码指定为URI连接字符串的一部分时)
-authenticationDatabase
-authenticationMechanism
因此,您需要基于此scheme提供URI:
mongodb:// [用户名:密码@] host1 [:port1] [,host2 [:port2],... [,hostN [:portN]]] [/ [数据库] [?选项]] >
一个例子是:
mongoexport --uri "mongodb://username:password@test-shard-00-00-1qpma.mongodb.net:27017,test-shard-00-01-1qpma.mongodb.net:27017,test-shard-00-02-1qpma.mongodb.net:27017/collection?replicaSet=test-shard-0&ssl=true&authSource=admin" --collection collectionName --out collectionName-dump.json