October 10, 2024

Working with MongoDB in Node.js

What is MongoDB? 📦


  • MongoDB: The "dabangg" of databases—it's NoSQL, meaning it doesn't need tables or rows like traditional databases (SQL).


  • Think of it as the "Chulbul Pandey" 😎—it works in its own unique way, storing data in flexible, JSON-like documents.


  • Why MongoDB?: Perfect for handling unstructured data, scaling effortlessly, and managing large volumes of information. Plus, it's easy to use with JavaScript, making it the go-to choice for Node.js developers.


Setting Up MongoDB in Node.js 🛠️


1. Install MongoDB Driver:


  • First, install the MongoDB driver to connect Node.js with MongoDB.


  • Run this command in your project directory:


    npm install mongodb


  • Simple, like calling a plumber when your tap leaks. 


2. Connect to MongoDB:


  • Let’s connect to our MongoDB database—imagine it as a phone call to your favorite food delivery service. 📞


Example:


const { MongoClient } = require('mongodb');
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

async function run() {     try {         await client.connect();         console.log("Connected to MongoDB!");     } finally {         await client.close();     } } run().catch(console.dir);


Explanation: 


  • This code connects to MongoDB running on your local machine. If successful, it logs "Connected to MongoDB!" like a Bollywood hero entering a scene.


Performing CRUD Operations 🍲


  • CRUD stands for Create, Read, Update, Delete—the four basic operations you’ll perform on your MongoDB collections. Think of it as preparing a meal: shopping (Create), reading the recipe (Read), making adjustments (Update), and eating or throwing away leftovers (Delete).


1. Create (Insert):


Example:

   

const database = client.db("mydb");
const collection = database.collection("movies");
const newMovie = { title: "Sholay", year: 1975 };
const result = await collection.insertOne(newMovie);
console.log(
New movie inserted with _id: <span class="hljs-subst">${result.insertedId}</span>
);

 

Explanation: 


  • Here, we insert a new movie, "Sholay", into the "movies" collection. It’s like adding a new dish to the menu. 🎬


2. Read (Find):


Example:

     

const query = { title: "Sholay" };
const movie = await collection.findOne(query);
console.log(movie);

   

Explanation:


  • This fetches the movie "Sholay" from the database, like asking the waiter to bring you the dish you just ordered.


3. Update:


Example:

     

const filter = { title: "Sholay" };
const updateDoc = { $set: { year: 1976 } };
const result = await collection.updateOne(filter, updateDoc);
console.log(
<span class="hljs-subst">${result.modifiedCount}</span> movie(s) updated
);

  

Explanation:


  • Update the release year of "Sholay" from 1975 to 1976, similar to tweaking the recipe while cooking. 🧑‍🍳


4. Delete:


Example:

     

const deleteResult = await collection.deleteOne({ title: "Sholay" });
console.log(
<span class="hljs-subst">${deleteResult.deletedCount}</span> movie(s) deleted
);


Explanation:


  • Deletes "Sholay" from the database—like finishing the meal or clearing the table. 🍽️


Working with Collections 🌐


  • Collections: Think of them as a playlist of songs 🎶. Each collection groups similar types of documents, like a playlist of Bollywood hits or Hollywood classics.


Example:

  

const moviesCollection = database.collection("movies");


Explanation:


  • In this case, "movies" is our collection. It’s like your carefully curated playlist in your music app.


Error Handling: What if Things Go Wrong? 😱


  • Error Handling: Always anticipate errors—because even "Gabbars" can mess things up.


Example:

  

try {
    await client.connect();
    console.log("Connected to MongoDB!");
} catch (e) {
    console.error("Connection failed", e);
}


Explanation:


  • This handles connection errors gracefully—like having a backup plan if your favourite restaurant is closed.


Conclusion 🎉


  • Working with MongoDB in Node.js is like directing a film—it requires careful planning, coordination, and a touch of creativity. By mastering CRUD operations, connections, and error handling, you'll be well-equipped to manage data in your applications. Remember, with great power comes great responsibility—so keep your code clean, efficient, and always have a plan B. Whether you’re handling data for a blockbuster or an indie project, MongoDB in Node.js is your co-star in the journey. 🌟


MongoDB
NoSQL
NodeJS
DatabaseManagement