Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Atlas MongoDB connection

I am trying to connect to Atlas MongoDB with the following URI (provided by mongodb connection string )

    module.exports = {
        mongoURI:'mongodb+srv://<user>:<password>@cluster0-un6sk.mongodb.net/test? 
    retryWrites=true'
    };

    //connect to mongoose
    mongoose
        .connect(db)
        .then( ()=>console.log('mongoDB connected'))
        .catch(err => console.log(err));

I get the following error :

{ MongoNetworkError: connection 3 to cluster0-shard-00-00-un6sk.mongodb.net:27017 closed
    at TLSSocket.<anonymous> (C:\Users\KARTIT Ismail\Desktop\devconnector\node_modules\mongodb-core\lib\connection\connection.js:352:9)
    at Object.onceWrapper (events.js:273:13)
    at TLSSocket.emit (events.js:182:13)
    at _handle.close (net.js:606:12)
    at TCP.done (_tls_wrap.js:386:7)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }
like image 678
ismail kartit Avatar asked Jun 04 '26 18:06

ismail kartit


2 Answers

Make sure you have whitelisted your IP in the Atlas Control panel.

You can enter 0.0.0.0, if you wish to allow access from any host.

enter image description here

Then you can have a connection string like below:

var connectionString= 'mongodb://<username>:<password>@<clustername>/<dbname>?ssl=true&replicaSet=<replica setname>&authSource=admin';

var db = mongoose.connect(connectionString).catch((error) => { console.log(error); });
like image 72
Benjamin Avatar answered Jun 07 '26 12:06

Benjamin


Whitelist the IP address, the best option allows access from any host, I believe everyone had installed mongoose, if not then use this command

npm i mongoose

First copy your application connection string from mongodb.com -> clusters->connect->connect your application

Now chose driver Node.js and version latest, now copy connection string.

Now connection.js

const mongoose = require('mongoose');
const conStr = 'mongodb+srv://lord:<password>@cluster5-eeev8.mongodb.net/test?retryWrites=true&w=majority'

const DB = conStr.replace(
  '<password>',
  myPass
);

const DB = conStr.replace(
  'test',
  myDatabaseName
);
//remember mongoose.connect() return promise
mongoose
  .connect(DB, {
    usedNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then((con) => {
    console.log(con.connection);
    console.log('DB connection successful');
  });
like image 27
Lord Avatar answered Jun 07 '26 11:06

Lord



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!