🧩 MongoDB Practice Series – Sorting, Limiting & Pagination Exercises (Part 4)
Welcome to Part 4 of the MongoDB Practice Series.
In this lesson, you will practice:
- Sorting data
- Limiting results
- Using skip for pagination
- Combining filters with sorting
These skills are very important in real-world applications like websites and dashboards.
🟢 Exercise 1: Sort in Ascending Order
Problem:
Retrieve all students and sort them by age in ascending order.
Solution:
db.students.find().sort({ age: 1 })
Learning Goal: Use 1 for ascending order.
🟢 Exercise 2: Sort in Descending Order
Problem:
Retrieve all products and sort them by price from highest to lowest.
Solution:
db.products.find().sort({ price: -1 })
Learning Goal: Use -1 for descending order.
🟡 Exercise 3: Limit Results
Problem:
Show only the top 3 highest-priced products.
Solution:
db.products.find().sort({ price: -1 }).limit(3)
Learning Goal: Combine sorting with limiting.
🟡 Exercise 4: Pagination Using Skip
Problem:
Display the second page of results where each page shows 5 records.
Solution:
db.students.find()
.skip(5)
.limit(5)
Learning Goal: Understand basic pagination.
Explanation:
- skip(5) skips the first 5 records.
- limit(5) shows the next 5 records.
🔵 Exercise 5: Filter + Sort
Problem:
Find students with age greater than 18 and sort them by name in alphabetical order.
Solution:
db.students.find({
age: { $gt: 18 }
}).sort({ name: 1 })
Learning Goal: Combine filtering with sorting.
🔵 Exercise 6: Get Latest Records
Problem:
Assume each document has a field called createdAt. Retrieve the 5 most recently added documents.
Solution:
db.posts.find()
.sort({ createdAt: -1 })
.limit(5)
Learning Goal: This pattern is commonly used in blogs and news websites.
🔴 Exercise 7: Complex Real-World Scenario
Problem:
From the products collection:
- Find products where price is greater than 1000
- Sort them by price (highest first)
- Show only top 2 results
Solution:
db.products.find({
price: { $gt: 1000 }
})
.sort({ price: -1 })
.limit(2)
Learning Goal: Practice combining multiple concepts in one query.
🚀 Mini Challenge
Create a collection called orders with fields:
- orderId
- customerName
- totalAmount
- orderDate
Then write queries to:
- Show the latest 5 orders
- Sort orders by totalAmount (highest first)
- Display page 2 if each page contains 3 orders
Try solving without looking back at the examples.
🎯 What’s Next?
In Part 5 of the MongoDB Practice Series, we will practice:
- Aggregation challenges
- $group operations
- Calculating totals and averages
- Real-world reporting queries
Stay tuned for the next level!
No comments:
Post a Comment