I've found the absence of joins very frustrating, as well as aggregations such SUM etc. The reason is, I presume, that these are very intensive for a reactive app. If it has to check for a re-render everytime anything is updated across 4 tables then that's expensive. Or for aggregation, everytime something new is inserted into a table.
Joins are a really hard problem, many people have tried to support joins with a package but they all miss a corner case or have less-than-ideal performance. I think it is something we will have to wait for meteor core to support. https://trello.com/c/BGvIwkEa/48-easy-joins-in-subscriptions
In the meantime I have been using the publish-composite package and denormalizing data that has a lot of reads in an update hook using the collection hooks package.
In mongo ideally you should have rich documents and not spread out relations among too many collections. However I can imagine how hard it would be to try and sync w/ a relational database without native join support.