📖 Scenario: You work at a small bookstore that keeps track of sales in a MongoDB database. You want to learn how to use aggregation operators to find useful information like total sales and average price per book.
🎯 Goal: Build a MongoDB aggregation pipeline step-by-step to calculate the total number of books sold and the average price of books sold.
📋 What You'll Learn
Create a collection called sales with documents containing book, price, and quantity fields.
Add a variable to hold the aggregation pipeline stages.
Use the $group aggregation operator to calculate total quantity sold and average price.
Complete the aggregation pipeline and assign it to a variable.
💡 Why This Matters
🌍 Real World
Aggregation operators help summarize and analyze data in databases, like calculating total sales or average prices in a bookstore.
💼 Career
Database developers and analysts use aggregation pipelines to generate reports and insights from large data collections efficiently.
Progress0 / 4 steps
1
DATA SETUP: Create the sales collection with sample documents
Create a variable called sales that is a list of three documents with these exact entries: { book: "MongoDB Basics", price: 20, quantity: 5 }, { book: "Advanced MongoDB", price: 35, quantity: 3 }, and { book: "MongoDB Aggregation", price: 25, quantity: 7 }.
MongoDB
Hint
Use a Python list of dictionaries to represent the sales documents.
2
CONFIGURATION: Define the aggregation pipeline variable
Create a variable called pipeline and set it to an empty list [] to hold the aggregation stages.
MongoDB
Hint
Just create an empty list called pipeline.
3
CORE LOGIC: Add a $group stage to calculate total quantity and average price
Add a dictionary to the pipeline list with a $group stage that groups all documents together (_id: null) and calculates totalQuantity as the sum of quantity and averagePrice as the average of price.
MongoDB
Hint
Use $group with _id: null to aggregate all documents together.
4
COMPLETION: Assign the aggregation pipeline to a variable called aggregation_pipeline
Create a variable called aggregation_pipeline and assign it the value of the pipeline list.
MongoDB
Hint
Just assign the existing pipeline list to aggregation_pipeline.
Practice
(1/5)
1. What is the main purpose of aggregation operators in MongoDB?
easy
A. To summarize and analyze data quickly
B. To insert new documents into a collection
C. To delete documents from a collection
D. To create indexes on collections
Solution
Step 1: Understand aggregation operators
Aggregation operators are used to process data and return computed results like sums, averages, and counts.
Step 2: Compare with other operations
Inserting, deleting, and indexing are different operations unrelated to aggregation.
Final Answer:
To summarize and analyze data quickly -> Option A
Quick Check:
Aggregation = Summarize data [OK]
Hint: Aggregation operators summarize data fast [OK]
Common Mistakes:
Confusing aggregation with data insertion
Thinking aggregation deletes data
Mixing aggregation with indexing
2. Which of the following is the correct syntax to use the $sum aggregation operator in a MongoDB pipeline?
Hint: Use $sum inside $group with field path in quotes [OK]
Common Mistakes:
Placing $sum outside $group
Missing quotes around field name
Incorrect _id usage in $group
3. Given the collection documents: [{"category": "A", "value": 10}, {"category": "A", "value": 20}, {"category": "B", "value": 5}], what will be the output of this aggregation pipeline?