无法将 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 无法连接到 mLab 环境

无法使用 mongoose 连接到 mongodb 数据库

无法使用 mongoose 连接到 Mongodb Atlas

无法使用 Mongoose 连接到 MongoDB Atlas

无法使用带有 X509 用户的 mongoose 连接到 Mongo DB

无法连接到数据库 - Mongoose nestJS