Aggregation publishers
Sometimes our database has a considerable amount of information that we want to synthesize. Some developers choose to publish all the information to the client and have the client synthesize it. This, as we have learned so far, can have a negative impact on performance. Other developers might use Meteor.method
to return the synthesized data. This is definitely better for the client, but it will take a toll on our server if the computation is large.
The best way to handle a problem like this is to use MongoDB's aggregation framework to take the hard work of the calculation to our database, and then we can pair the results with the Meteor.publish
special functions: @added
, @changed
, and @removed
.
The aggregation framework
MongoDB's aggregation framework uses the concept of a pipeline to process data. A pipeline is, basically, a series of steps that Mongo is going to follow to produce the data you need.
We have installed support for the aggregation framework by...