我已从Meteor应用中删除了autopublish
。现在我手动发布我的收藏。我有一些相关的收藏品。我想尽可能地提高性能。
例如,如果我正在查看帖子并希望查看与此帖相关的所有评论,我必须使用post: Posts.findOne(postId)
和comments: Comments.find({postId: postId})
查询数据库。我使用iron-router
查询数据字段中的两个集合,因此它们出现在我的模板中,但我也订阅了waitOn
中的出版物。现在我找到了https://github.com/englue/meteor-publish-composite,它允许我同时发布多个集合。但我不太明白。如果我在Meteor.publishComposite('postAndComments', ...)
中使用server/publish.js
,则在postAndComments
订阅waitOn
,并在post
中同时设置comments
和data
像往常一样,我会在数据库中保存需求吗?对我来说,我仍然查询数据库的次数相同。但是,在发出查询时发出的查询是完成的,{i} data
只是检索从数据库中查询过的内容的唯一方法吗?
此外,在示例1中,显示了如何发布带有归属评论和帖子/评论作者的热门帖子,但在模板中,仅输出帖子。我怎样才能输出评论和作者?我误解了publishComments
的潜力吗?我理解这是一种联系。
答案 0 :(得分:0)
我成功使用了publishComposite
。在下面的示例中,我订阅了与Units
匹配的filter
以及这些单位所属的Properties
。
Meteor.publishComposite('unitsWithProperties', function (filter) {
var filter = filter || {};
console.log(filter);
return {
find: function () {
var units;
units = Units.find(filter);
return units;
},
children: [
{
collectionName: 'properties',
find: function (unit) {
return Properties.find({ _id: unit.propertyId });
}
}
]
};
});
在你的情况下,我相信你可以:
children:
游标数组
希望这有帮助。
亚历