I have just started learning about MongoDB and I am trying to host my node js application locally via MongoDB Server 6.0 (without using mongoose or atlas)
I copied the async javascript code given in the MongoDB docs. I made sure to run mongod before executing the below code
MongoDB server started
const { MongoClient } = require("mongodb");
// Connection URI
const uri =
"**mongodb://localhost:27017**";
// Create a new MongoClient
const client = new MongoClient(uri);
async function run() {
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Establish and verify connection
await client.db("admin").command({ ping: 1 });
console.log("Connected successfully to server");
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run().catch(console.dir);
It’s throwing an error:
image of the error it’s throwing
2
Answers
Problem is, the
localhost
alias resolves to IPv6 address::1
instead of127.0.0.1
However,
net.ipv6
defaults tofalse
.The best option would be to start the MongoDB with this configuration:
or
Then all variants should work:
If you don’t run MongoDB as a service then it would be
NB, I don’t like configuration
in my opinion this makes only sense on a computer with multiple network interfaces. Use
bindIp: localhost
if you need to prevent any connections from remote computer (e.g. while maintenance or when used as backend database for a web-service), otherwise usebindIpAll: true
You can try this: