Mongoose Connections

Last Updated : 9 Oct, 2025

A Mongoose connection links a Node.js application to a MongoDB database, enabling efficient data operations like reading, writing, updating, and deleting documents. It manages connection pooling, optimizes resources, and handles errors, ensuring scalable and reliable database interactions.

Establishing Mongoose Connections

Here are the steps to establishing mongoose connections.

Step 1: Install Mongoose

First, make sure we have Node.js installed. We can install Mongoose using npm, the Node.js package manager, by running the following command in our terminal:

npm install mongoose

Step 2: Create a Node.js Application

Create a file named app.js or index.js and import the Mongoose library to start using it in our application:

const mongoose = require('mongoose'); 

Step 3: Establish a Connection

To connect to MongoDB, use the mongoose.connect() method. The connection requires a MongoDB URI (Uniform Resource Identifier), which specifies the database location and other connection details. Additionally, passing options such as useNewUrlParser and useUnifiedTopology ensures compatibility with newer MongoDB versions.

JavaScript
const dbURI = 'mongodb://localhost/mydatabase';

mongoose.connect(dbURI, {
    useNewUrlParser: true,
    useUnifiedTopology: true
})
.then(() => console.log('Connected to MongoDB'))
.catch((error) => {
    console.error('Error connecting to MongoDB:', error.message);
});

Step 4: Handling Connection Events

To monitor the state of the connection, you can use Mongoose’s built-in connection events. These events allow us to track when the connection is opened, closed, or encounters errors.

JavaScript
const db = mongoose.connection;

// Connection successful
db.once('open', () => console.log('Connected to MongoDB'));

// Connection error
db.on('error', (err) => console.error('MongoDB connection error:', err));

// Connection disconnected
db.on('disconnected', () => console.log('Disconnected from MongoDB'));

Events:

  • connected: Connection established
  • error: Connection error occurred
  • disconnected: Connection lost
  • reconnected: Connection restored
  • close: Connection closed explicitly

Step 5: Close the Connection

When our application terminates or no longer requires the database connection, it’s important to close it properly to free up resources. Use mongoose.connection.close() to close the connection gracefully.

JavaScript
process.on('SIGINT', () => {
    mongoose.connection.close(() => {
        console.log('Mongoose connection closed due to app termination');
        process.exit(0);
    });
});

You can also close the connection manually if needed:

// mongoose.connection.close();

Why do We need Mongoose Connections?

Mongoose connection is needed due to:

  • Critical Link: Mongoose connects Node.js to MongoDB, enabling efficient reading and writing of data.
  • Performance Boost: Connection pooling reduces repeated connection overhead and improves performance.
  • Scalability: Properly configured connections support growing workloads and larger datasets.
  • Error Resilience: Connection events allow handling disconnections and reconnections to maintain application stability.
Comment

Explore