无法将 Mongoose 连接到 Atlas
Posted
技术标签:
【中文标题】无法将 Mongoose 连接到 Atlas【英文标题】:Fail to connect Mongoose to Atlas 【发布时间】:2018-08-01 17:22:02 【问题描述】:我总是连接到“管理员”数据库,即fixed bug。
使用 Mongoose 5.0.6 MongoDb 3.6 并尝试连接到 Atlas。
-
我的问题,Mongoose 5.0.6 依赖什么驱动程序?
我怎样才能知道 Mongoose 什么时候会修复?
在不同的方向上,有没有办法与 MongoDB 连接,然后将此连接与
猫鼬?
干杯
【问题讨论】:
【参考方案1】:基本上,您应该尝试使用您的 url 链接进行连接,并在 mongoose 连接方法上指定数据库名称 所以如果你的集群链接是:
mongodb+srv://userName:Passwrod@clustor.mongodb.net/
您的数据库名称是:
testDB
那么你应该如下调用 mongoose.connect 方法:
mongoose.connect('mongodb+srv://userName:Passwrod@cluster.mongodb.net/', dbName: 'testDB');
【讨论】:
太棒了!谢谢! 我收到此错误:/ events.js:160 throw er; // 未处理的“错误”事件 ^ 错误:未找到有效的副本集实例服务器 @MisirJafarov 您是否尝试连接到具有副本集的图集实例? @ChaiHalfon 抱歉,但实际上我不知道什么是副本集:/ 我是 MongoDB 新手。 我通过更新猫鼬来修复它【参考方案2】:当您将此连接字符串用于 (MongoShell 3.6+) 时,连接已建立:
var connDB = "mongodb+srv://<username>:<password>@cluster-fax0w.mongodb.net/test"
但是,如果不在 mongoose.connect() 中输入 DBName,您将无法读取/写入数据。
mongoose.connect(uri, dbName: <your DB name> )
.then( () =>
console.log('Connection to the Atlas Cluster is successful!')
)
.catch( (err) => console.error(err));
【讨论】:
【参考方案3】:如果您在连接到 MongoDB Atlas 时遇到错误,请注意:
-
您已将我们的 IP 地址/全部 (0.0.0.0/0) 列入白名单
您的凭据正确
防火墙/防病毒已禁用
如果一切都失败了
-
确保您的 DNS 是公共的。或者也许将其更改为 Google 的公共 DNS。
抛出相同的链接:
https://www.youtube.com/watch?v=F9u5ULrRt3Y
祝你好运!
【讨论】:
以上是关于无法将 Mongoose 连接到 Atlas的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 mongoose 连接到 Mongodb Atlas
无法使用 Mongoose 连接到 MongoDB Atlas