无法将Mongoose连接到Atlas

时间:2018-02-22 00:08:31

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

我总是连接到“admin”数据库,这是一个fixed bug

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

  1. 我的问题,Mongoose 5.0.6依赖什么驱动程序?
  2. 我怎样才能知道Mongoose何时能解决这个问题?
  3. 在另一个方向,有没有办法连接MongoDB然后使用此连接 猫鼬?
  4. 干杯

3 个答案:

答案 0 :(得分:27)

基本上你应该尝试连接你的url链接,并在mongoose connect方法中指定数据库名称 所以,如果您的群集链接是:

mongodb+srv://userName:Passwrod@clustor.mongodb.net/

,您的数据库名称是:

testDB

然后你应该按如下方式调用mongoose.connect方法:

mongoose.connect('mongodb+srv://userName:Passwrod@cluster.mongodb.net/', {dbName: 'yourDbName'});

答案 1 :(得分:2)

请注意,如果在连接MongoDB Atlas时出错,请确保:

  1. 您已经列出了我们的IP地址/全部(0.0.0.0/0)
  2. 您的凭据正确
  3. 防火墙/防病毒已禁用

如果全部失败

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

祝你好运!

答案 2 :(得分:1)

当您将此连接字符串用于(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));