Meteor.publish: publish a collection that depends on another collection

I have a publish function as follows:

Meteor.publish('tasks', function (name) {
    var project = Projects.findOne({name: name});

    return Tasks.find({projectId: project._id});

Now assume that at some point changes are made to Projects with the result that the above Projects.findOne
returns a different project and so the Tasks.find will return other tasks. However the changes made to Projects doesn’t republish the tasks

I’ve used reactivePublish, but it turns out the package has issues (and also does not have any unit tests). So, is there an easy way to make this publish function re-publish when project changes ?


As of this writing, reactive joins are an unsolved problem. For a complete overview see Reactive Joins In Meteor


I strongly
recommend against using observeChanges
directly. It’s incredibly hard to get right, and easy to develop a memory leak. If you don’t believe me, watch this video
on EventedMind. It will make your eyes bleed.

There are several package-based solutions
to this problem. The meteor guide
recommends publish-composite

If you find the idea of using a package-based solution to be unacceptable, have a close look at the Joining On The Client
section from Reactive Joins In Meteor
. It’s clean but requires more waiting on the user’s part. Also see my post on template joins
if you prefer to active your subscriptions at the template level.

Hello, buddy!稿源:Hello, buddy! (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 前端开发 » Meteor.publish: publish a collection that depends on another collection

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录