0

我正在使用来自 compose 的 mongoose 版本 4.13.6 和 mongodb,下面是我连接到 mongo 数据库的代码。

mongoose.createConnection('mongodb://[user]:[pass]@[host1]:[port1],[host2]:[port2]/dbnamme?ssl=true', {});

但是当我运行它时出现错误,

MongoError: no primary found in replicaset

不知道为什么会这样,有人可以帮助我吗?

4

1 回答 1

0

所以简短的回答是这样的:

...所有驱动程序都不相同,当指定多个主机时,有些驱动程序会做出假设。例如,Meteor/Node.js MongoDB 驱动程序看到两个主机并假设它正在与一个副本集通信。连接后,驱动程序询问哪个主机是主机,然后因为它们都不是主机而出错。解决此问题的简单方法是在 URI 中使用一个主机 ..

https://www.compose.com/articles/connecting-to-the-new-mongodb-at-compose/#drivingtoyourfirstdatabase

因此,当您创建连接时,只需使用您要连接的数据库的连接 URI 之一,例如:

var uri = "mongodb://<username>:<password>@[host]:[port]/<db_name>?ssl=true";

mongoose.createConnection(uri);
于 2017-12-08T17:57:19.917 回答