3 minute read

MongoDB, a popular NoSQL database, is renowned for its flexibility and scalability. As a document-oriented database, it uses JSON-like documents with optional schemas, making it a perfect choice for developers looking to store data in a more dynamic and versatile manner. In this blog, we will delve into the essentials of writing MongoDB scripts, from basic operations to more advanced functionalities.

Getting Started with MongoDB Scripts

MongoDB scripts are typically written in JavaScript and executed in the MongoDB shell (mongo), a powerful interface for interacting with the database. Let’s start with some fundamental operations.

1. Connecting to the Database

Before performing any operations, you need to connect to your MongoDB instance. This is usually done using the mongo command followed by the connection string:

mongo "mongodb://localhost:27017/mydatabase"

This command connects to a MongoDB instance running on localhost at port 27017 and accesses the mydatabase database.

2. Inserting Documents

In MongoDB, data is stored in collections, which are akin to tables in relational databases. To insert documents into a collection, use the insertOne or insertMany methods.

db.users.insertOne({
    name: "Mahesh Kumar Yadav",
    age: 29,
    email: "mahesh@example.com"
});

For multiple documents:

db.users.insertMany([
    { name: "Mahesh Kumar Yadav", age: 27, email: "mahesh@example.com" },
    { name: "Mukesh Kumar Yadav", age: 31, email: "mukesh@example.com" }
]);
3. Querying Documents

To retrieve documents, use the find method. This method returns a cursor to the documents that match the query criteria.

db.users.find({ age: { $gt: 25 } });

This command finds all users older than 25. For a more readable output, you can use pretty().

db.users.find({ age: { $gt: 25 } }).pretty();
4. Updating Documents

To update documents, use the updateOne, updateMany, or replaceOne methods. The following example updates the age of a user named Mahesh Kumar Yadav.

db.users.updateOne(
    { name: "Mahesh Kumar Yadav" },
    { $set: { age: 30 } }
);

To update multiple documents:

db.users.updateMany(
    { age: { $lt: 30 } },
    { $set: { status: "young" } }
);
5. Deleting Documents

To remove documents, use the deleteOne or deleteMany methods. Here’s how to delete a single document:

db.users.deleteOne({ name: "Mahesh Kumar Yadav" });

And to delete multiple documents:

db.users.deleteMany({ age: { $lt: 30 } });

Advanced MongoDB Scripting

Once you are comfortable with basic CRUD (Create, Read, Update, Delete) operations, you can explore more advanced MongoDB features.

Aggregation Framework

The aggregation framework in MongoDB is a powerful tool for performing data processing and analysis. It allows for complex data transformations and computations.

db.users.aggregate([
    { $match: { age: { $gte: 25 } } },
    { $group: { _id: "$status", averageAge: { $avg: "$age" } } },
    { $sort: { averageAge: -1 } }
]);

This pipeline matches users aged 25 and above, groups them by their status, calculates the average age for each group, and sorts the results by average age in descending order.

Indexing for Performance

Indexes improve the performance of queries. You can create indexes to speed up the retrieval of data.

db.users.createIndex({ email: 1 });

This creates an ascending index on the email field. You can also create compound indexes on multiple fields.

db.users.createIndex({ name: 1, age: -1 });
Using MongoDB Transactions

Transactions ensure that a series of operations either all succeed or all fail, maintaining data integrity.

const session = db.getMongo().startSession();
session.startTransaction();
try {
    const usersCollection = session.getDatabase("mydatabase").users;
    usersCollection.updateOne({ name: "Mahesh Kumar Yadav" }, { $set: { age: 28 } });
    usersCollection.updateOne({ name: "Mukesh Kumar Yadav" }, { $set: { age: 32 } });
    session.commitTransaction();
} catch (error) {
    session.abortTransaction();
    throw error;
} finally {
    session.endSession();
}

Conclusion

Writing MongoDB scripts can significantly enhance your ability to manage and manipulate your data efficiently. From basic CRUD operations to advanced data processing with the aggregation framework, mastering these scripting techniques will empower you to leverage the full potential of MongoDB. As you become more proficient, you can explore further optimizations and advanced functionalities to meet the needs of your applications. Happy scripting!

Leave a comment