对远程mongo数据库运行mongoexport的正确语法是什么?

时间:2018-08-03 17:29:22

标签: mongodb mongoexport

我希望从远程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

1 个答案:

答案 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