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: