0
0
MongoDBquery~30 mins

Pipeline execution order matters in MongoDB - Mini Project: Build & Apply

Choose your learning style9 modes available
Pipeline Execution Order Matters in MongoDB Aggregation
📖 Scenario: You are managing a small online bookstore database. You want to analyze book sales data to find the total sales for books priced above a certain amount.
🎯 Goal: Build a MongoDB aggregation pipeline that first filters books priced above 20, then calculates the total sales for each book by multiplying price and quantity sold, and finally sorts the results by total sales in descending order.
📋 What You'll Learn
Create a collection named books with documents containing title, price, and quantity_sold fields.
Add a variable priceThreshold set to 20 to filter books priced above this value.
Write an aggregation pipeline that first filters books with price greater than priceThreshold.
Then add a field totalSales calculated as price * quantity_sold.
Finally, sort the results by totalSales in descending order.
💡 Why This Matters
🌍 Real World
Online stores and inventory systems often need to analyze sales data by filtering, calculating totals, and sorting results to make business decisions.
💼 Career
Understanding MongoDB aggregation pipelines and the importance of stage order is essential for backend developers and data analysts working with NoSQL databases.
Progress0 / 4 steps
1
Create the books collection with sample data
Create a MongoDB collection called books and insert these exact documents: { title: "Book A", price: 15, quantity_sold: 10 }, { title: "Book B", price: 25, quantity_sold: 5 }, { title: "Book C", price: 30, quantity_sold: 7 }.
MongoDB
Need a hint?

Use db.books.insertMany() with an array of objects containing the exact fields and values.

2
Set the priceThreshold variable
Create a variable called priceThreshold and set it to 20 to use as the filter value for book prices.
MongoDB
Need a hint?

Use const priceThreshold = 20 to create the variable.

3
Build the aggregation pipeline with filtering and adding totalSales
Write an aggregation pipeline on books that first filters documents where price is greater than priceThreshold using $match, then adds a new field totalSales calculated as price * quantity_sold using $addFields.
MongoDB
Need a hint?

Use $match first to filter, then $addFields to add totalSales as { $multiply: ["$price", "$quantity_sold"] }.

4
Add sorting stage to the aggregation pipeline
Add a $sort stage to the existing pipeline that sorts documents by totalSales in descending order.
MongoDB
Need a hint?

Add { $sort: { totalSales: -1 } } as the last stage in the pipeline array.