无法将 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的主要内容,如果未能解决你的问题,请参考以下文章