Day 03 Applied Practice

Aggregation Pipelines

Transform and analyze data with $match, $group, $sort, $lookup, and $project stages.

~1 hour Hands-on Precision AI Academy

Today’s Objective

Transform and analyze data with $match, $group, $sort, $lookup, and $project stages.

The aggregation pipeline is like a series of Unix pipes. Each stage transforms the documents and passes results to the next stage.

Pipeline stages
PIPELINE STAGES
db.orders.aggregate([ // Stage 1: filter documents { $match: { status: 'completed' } }, // Stage 2: group and calculate { $group: { _id: '$category', totalRevenue: { $sum: '$amount' }, orderCount: { $count: {} }, avgOrder: { $avg: '$amount' } }}, // Stage 3: sort results { $sort: { totalRevenue: -1 } }, // Stage 4: limit { $limit: 10 }, // Stage 5: reshape output { $project: { _id: 0, category: '$_id', totalRevenue: 1, orderCount: 1, avgOrder: { $round: ['$avgOrder', 2] } }}
])
$lookup: Joins
$LOOKUP: JOINS
// Join users to their orders
db.orders.aggregate([ { $lookup: { from: 'users', localField: 'userId', foreignField: '_id', as: 'user' }}, { $unwind: '$user' },  // flatten the user array { $project: { orderId: '$_id', amount: 1, userName: '$user.name', userEmail: '$user.email' }}
])
📝 Day 3 Exercise
Build a Sales Report
  1. U
  2. s
  3. i
  4. n
  5. g
  6. y
  7. o
  8. u
  9. r
  10. p
  11. r
  12. o
  13. d
  14. u
  15. c
  16. t
  17. s
  18. a
  19. n
  20. d
  21. o
  22. r
  23. d
  24. e
  25. r
  26. s
  27. c
  28. o
  29. l
  30. l
  31. e
  32. c
  33. t
  34. i
  35. o
  36. n
  37. s
  38. ,
  39. w
  40. r
  41. i
  42. t
  43. e
  44. a
  45. p
  46. i
  47. p
  48. e
  49. l
  50. i
  51. n
  52. e
  53. t
  54. h
  55. a
  56. t
  57. :
  58. f
  59. i
  60. l
  61. t
  62. e
  63. r
  64. s
  65. t
  66. o
  67. c
  68. o
  69. m
  70. p
  71. l
  72. e
  73. t
  74. e
  75. d
  76. o
  77. r
  78. d
  79. e
  80. r
  81. s
  82. ,
  83. g
  84. r
  85. o
  86. u
  87. p
  88. s
  89. b
  90. y
  91. p
  92. r
  93. o
  94. d
  95. u
  96. c
  97. t
  98. c
  99. a
  100. t
  101. e
  102. g
  103. o
  104. r
  105. y
  106. ,
  107. c
  108. a
  109. l
  110. c
  111. u
  112. l
  113. a
  114. t
  115. e
  116. s
  117. t
  118. o
  119. t
  120. a
  121. l
  122. r
  123. e
  124. v
  125. e
  126. n
  127. u
  128. e
  129. a
  130. n
  131. d
  132. o
  133. r
  134. d
  135. e
  136. r
  137. c
  138. o
  139. u
  140. n
  141. t
  142. p
  143. e
  144. r
  145. c
  146. a
  147. t
  148. e
  149. g
  150. o
  151. r
  152. y
  153. ,
  154. s
  155. o
  156. r
  157. t
  158. s
  159. d
  160. e
  161. s
  162. c
  163. e
  164. n
  165. d
  166. i
  167. n
  168. g
  169. b
  170. y
  171. r
  172. e
  173. v
  174. e
  175. n
  176. u
  177. e
  178. .

Supporting Resources

Go deeper with these references.

MongoDB Docs
Official MongoDB Manual Complete reference documentation for all MongoDB features and operations.
MongoDB University
Free MongoDB Courses Official free courses on MongoDB fundamentals, aggregation, and performance.
GitHub
MongoDB Driver Examples Official Node.js and Python driver examples on GitHub.

Day 3 Checkpoint

Before moving on, make sure you can answer these without looking:

Continue To Day 4
Indexes and Performance