Mongodb 使用Elixir连接到Mongo DB Atlas

Mongodb 使用Elixir连接到Mongo DB Atlas,mongodb,elixir,Mongodb,Elixir,我正在尝试使用Elixir Mongo驱动程序连接到Mongo Atlas 我希望有足够的帮助或代码片段来使用副本集进行这些外部分片连接。以下是我收到的错误: Mongo.Protocol (#PID<0.303.0>) failed to connect: ** (Mongo.Error) tcp connect: connection refused - :econnrefused 我在这里也找不到任何有帮助的Erlang库。这实际上可能是由于底层的Erlang库造成的 因此,

我正在尝试使用Elixir Mongo驱动程序连接到Mongo Atlas

我希望有足够的帮助或代码片段来使用副本集进行这些外部分片连接。以下是我收到的错误:

Mongo.Protocol (#PID<0.303.0>) failed to connect: ** (Mongo.Error) tcp connect: connection refused - :econnrefused
我在这里也找不到任何有帮助的Erlang库。这实际上可能是由于底层的Erlang库造成的

因此,我们还实现了一个Ruby代码,该代码写入MongoDB,并作为一个单独的容器运行。尽管Elixir可以让我们运行Ruby,但它的性能仍然不是最好的


我想知道是否还有其他人找到了解决方案?

删除ruby标记,因为它与解决您的问题无关。您使用Elixir的具体MongoDB驱动程序和版本是什么?为了确保这不是IP白名单/防火墙问题,您是否能够使用
mongo
shell从同一个源IP连接到部署?您的群集设置实际上是分片的,还是只是副本集?驱动程序当前不支持碎片。除此之外,您在这里并没有为我们提供太多信息来解决这个问题。我在配置中看到的唯一问题是
:type
键的值应该是原子,而不是字符串,但这不会导致此错误。免责声明:我是mongodb包的当前维护者。@Stennie我们使用的是:mongodb,“0.3.0”。还可以在同一服务器实例上使用Ruby驱动程序连接到Mongo atlas url@副本集支持仅在V0.4.0中添加。尝试更新驱动程序。
conn = Mongo.start_link( 
 database: "admin", 
 seeds: [
  "server-shard-01:27017", 
  "server-shard-02:27017", 
  "server-shard-03:27017" 
 ], 
 set_name: "test-shard-0", 
 username: "myuser", 
 password: "mypassword", 
 auth_source: "admin", 
 port: 27017, 
 type: "replica_set_primary", 
 ssl: true 
)