20
votes

I'm always connecting to the "admin" DB, which is a fixed bug.

Using Mongoose 5.0.6 MongoDb 3.6 and trying to connect to Atlas.

  1. My question, what driver Mongoose 5.0.6 depend on?
  2. How can I find out when Mongoose will have that fix?
  3. On a different direction, is there a way to connect with MongoDB then use this connection with Mongoose?

Cheers

3

3 Answers

51
votes

Basically you should try connecting with your url link, and specify the DB name on the mongoose connect method so if your cluster link is:

mongodb+srv://userName:[email protected]/

and your DB name is:

testDB

then you should call the mongoose.connect method as follows:

mongoose.connect('mongodb+srv://userName:[email protected]/', {dbName: 'testDB'});
3
votes

Connection is established when you use this connection string for (MongoShell 3.6+) :

var connDB = "mongodb+srv://<username>:<password>@cluster-fax0w.mongodb.net/test"

However, you will not be able to read/write data without entering the DBName in the mongoose.connect().

mongoose.connect(uri, { dbName: <your DB name> })
  .then( () => {
    console.log('Connection to the Atlas Cluster is successful!')
  })
  .catch( (err) => console.error(err));
2
votes

Just a side note if you ever get an error connecting to the MongoDB Atlas make sure:

  1. You've whitlisted our IP address / all (0.0.0.0/0)
  2. Your credentials are right
  3. Firewall / anti-virus are disabled

And if all fails

  1. Make sure your DNS is a public one. Or maybe change it to Google's public DNS. Throwing a link for the same: https://www.youtube.com/watch?v=F9u5ULrRt3Y

Goodluck!