In this chapter, we dived deep into the aggregation framework. We discussed why and when we should use aggregation as opposed to simply using MapReduce or querying the database. We went through the vast array of options and functionalities for aggregation.
We discussed the aggregation stages and the various operators, such as Boolean operators, comparison operators, set operators, array operators, date operators, string operators, expression arithmetic operators, aggregation accumulators, conditional expressions, and variables, and the literal parsing data type operators.
Using the Ethereum use case, we went through aggregation with working code and learned how to approach an engineering problem to solve it.
Finally, we learned about the limitation that the aggregation framework currently has and when to avoid it.
In the next chapter, we will move on to the topic of indexing...