Methods or Publish functions to read large datasets in mongo


#1

What is the most efficient way to read data from sever: methods or publish functions?

I have collections linked to other collections so I need to write several queries to different collections to get the proper data that I need.

What’s the best way to get this data and what is best for reactive data and non reactive data methods or publish functions?

Thanks for your help


#2

That depends on what you mean by efficient.

  • Methods are used to get a snapshot from your database. As far as the client is concerned, it’s static and won’t mutate if the document(s) fetched are changed on the database.
  • Pub/sub is used to get live updates from your database. As documents are added, changed or removed, your local data follows those changes.

Both approaches have their uses.


#3

Thank you so much @robfallows for your reply.

Indeed I need reactivity. The dataset I need for the client have to be generated from several related/linked collections.

Using methods to get dataset from multiples collection is easy and I was trying to call them using simple:reactive-methods from a reactive context like helpers.

However, I think that pub/subs are specifically designed for this purpose. My question is how can I return a dataset from publish function, which was generated from multiples collections (several queries and specific logic) but the result is not precisely a collection (not a cursor) ?

Thank you again.


#4

Check this part of the Meteor Guide.