Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Using the Aggregation Framework

Using the aggregation framework in MongoDB

The aggregation framework in MongoDB is a powerful tool for performing data processing and transformation tasks. It allows you to create complex pipelines to filter, sort, group, reshape, and modify data in a collection.

Aggregation Pipeline

The aggregation pipeline consists of a series of stages, each performing an operation on the input data and passing the result to the next stage. Common stages include:

  • $match: Filters documents based on a specified condition.
  • $group: Groups documents by a specified field and performs aggregations.
  • $project: Reshapes documents by including, excluding, or adding new fields.
  • $sort: Sorts documents by a specified field.
  • $limit: Limits the number of documents in the output.

Example: Aggregation Pipeline

Below is an example of an aggregation pipeline that filters, groups, and sorts documents:

Aggregation Pipeline Example

db.collection.aggregate([
    { $match: { status: "active" } },
    { $group: { _id: "$category", total: { $sum: "$amount" } } },
    { $sort: { total: -1 } },
    { $limit: 5 }
])

Advanced Aggregation Operations

The aggregation framework also supports advanced operations such as:

  • $lookup: Performs a left outer join with another collection.
  • $unwind: Deconstructs an array field into multiple documents.
  • $out: Writes the results of the aggregation to a new collection.

Example: $lookup Operation

Below is an example of using the $lookup operation to join two collections:

$lookup Example

db.orders.aggregate([
    {
        $lookup: {
            from: "customers",
            localField: "customerId",
            foreignField: "_id",
            as: "customerDetails"
        }
    }
])