MongoDB Aggregate


MongoDB Aggregate

In MongoDB, the aggregate operation is used to process data records and return computed results. This command allows you to perform complex data aggregation tasks, such as filtering, grouping, and sorting, within MongoDB collections.


Syntax

db.collection.aggregate(pipeline, options)

The aggregate method uses a pipeline of stages to process documents and return aggregated results. The options parameter can be used to customize the aggregation.


Example MongoDB Aggregate

Let's look at some examples of how to use the aggregate method in the programGuru collection in MongoDB:

1. Basic Aggregation

db.programGuru.aggregate([
    { $match: { age: { $gt: 25 } } },
    { $group: { _id: "$age", count: { $sum: 1 } } },
    { $sort: { _id: 1 } }
])

This command filters documents where the age is greater than 25, groups them by age, and sorts the results by age in ascending order.

2. Aggregation with Projection

db.programGuru.aggregate([
    { $match: { age: { $gt: 25 } } },
    { $project: { name: 1, age: 1, _id: 0 } }
])

This command filters documents where the age is greater than 25 and projects only the name and age fields.

3. Aggregation with Multiple Stages

db.programGuru.aggregate([
    { $match: { age: { $gt: 25 } } },
    { $group: { _id: "$age", averageAge: { $avg: "$age" } } },
    { $sort: { averageAge: 1 } }
])

This command filters documents where the age is greater than 25, groups them by age, calculates the average age, and sorts the results by the average age in ascending order.


Full Example

Let's go through a complete example that includes switching to a database, creating a collection, inserting documents, and using the aggregate method.

Step 1: Switch to a Database

This step involves switching to a database named myDatabase.

use myDatabase

In this example, we switch to the myDatabase database.

MongoDB Aggregate

Step 2: Create a Collection

This step involves creating a new collection named programGuru in the myDatabase database.

db.createCollection("programGuru")

Here, we create a collection named programGuru.

MongoDB Aggregate

Step 3: Insert Documents into the Collection

This step involves inserting documents into the programGuru collection.

db.programGuru.insertMany([
    { name: "John Doe", age: 30, email: "john.doe@example.com" },
    { name: "Jane Smith", age: 25, email: "jane.smith@example.com" },
    { name: "Jim Brown", age: 35, email: "jim.brown@example.com" }
])

We insert multiple documents into the programGuru collection.

MongoDB Aggregate

Step 4: Use the Aggregate Method

This step involves using the aggregate method to process documents in the programGuru collection.

Basic Aggregation

db.programGuru.aggregate([
    { $match: { age: { $gt: 25 } } },
    { $group: { _id: "$age", count: { $sum: 1 } } },
    { $sort: { _id: 1 } }
]).pretty()

We filter documents where the age is greater than 25, group them by age, and sort the results by age in ascending order.

MongoDB Aggregate

Aggregation with Projection

db.programGuru.aggregate([
    { $match: { age: { $gt: 25 } } },
    { $project: { name: 1, age: 1, _id: 0 } }
]).pretty()

We filter documents where the age is greater than 25 and project only the name and age fields.

MongoDB Aggregate

Aggregation with Multiple Stages

db.programGuru.aggregate([
    { $match: { age: { $gt: 25 } } },
    { $group: { _id: "$age", averageAge: { $avg: "$age" } } },
    { $sort: { averageAge: 1 } }
]).pretty()

We filter documents where the age is greater than 25, group them by age, calculate the average age, and sort the results by the average age in ascending order.

MongoDB Aggregate

Conclusion

The MongoDB aggregate operation is crucial for performing complex data processing tasks. Understanding how to use the aggregation framework allows you to efficiently filter, group, and transform data within MongoDB collections.