【问题标题】:Fail to connect Mongoose to Atlas无法将 Mongoose 连接到 Atlas
【发布时间】:2018-08-01 17:22:02
【问题描述】:

我总是连接到“管理员”数据库,即fixed bug

使用 Mongoose 5.0.6 MongoDb 3.6 并尝试连接到 Atlas。

  1. 我的问题,Mongoose 5.0.6 依赖什么驱动程序?
  2. 我怎样才能知道 Mongoose 什么时候会修复?
  3. 在不同的方向上,有没有办法与 MongoDB 连接,然后将此连接与 猫鼬?

干杯

【问题讨论】:

    标签: node.js mongodb mongoose node-mongodb-native mongodb-atlas


    【解决方案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 时遇到错误,请注意:

      1. 您已将我们的 IP 地址/全部 (0.0.0.0/0) 列入白名单
      2. 您的凭据正确
      3. 防火墙/防病毒已禁用

      如果一切都失败了

      1. 确保您的 DNS 是公共的。或者也许将其更改为 Google 的公共 DNS。 抛出相同的链接: https://www.youtube.com/watch?v=F9u5ULrRt3Y

      祝你好运!

      【讨论】:

        猜你喜欢
        • 2020-02-22
        • 2020-07-25
        • 1970-01-01
        • 2019-03-14
        • 2019-12-30
        • 2021-06-25
        • 2017-12-06
        • 2021-08-26
        • 2020-05-12
        相关资源
        最近更新 更多