我对Meteor很新,所以这个问题可能听起来很尴尬。我正在尝试显示所有帖子的列表
Posts = new Meteor.Collection('posts');
然后在Meteor.publish('posts',...)
return Posts.find();
并显示与每个帖子相关的一些评论。评论存储在单独的集合
中Comments = new Meteor.Collection('comments')
我不希望用户从数据库中下载所有评论只是为了找出每个帖子的评论数量 - 我没有在这里显示它们。所以
Meteor.publish('comments', function(){
return Comments.find();
})
不是一种选择。
我知道我可以对数据进行非规范化并将postsCount存储在Post文档中。但还有其他方法吗?我希望它是可观察的 - 或者更确切地说是实时更新。我知道如何在显示单个帖子时这样做,但我不知道如何为整个列表执行此操作。
答案 0 :(得分:1)
您知道可以在发布功能中添加参数吗?
你可以拥有像
这样的东西Meteor.publish('comments', function(post){
return Comments.find({postId: post._id});
})
通过这种方式,您一次只能收到一篇帖子的评论。
希望这就是你要找的东西
答案 1 :(得分:0)
如果您只是在寻找我认为您可以使用的评论数量:
{{commentsCount}}
所以一个例子就是:
<h1>Post Title</h1>
<p>{{commentsCount}} comments</p>
确保在帖子模板中使用它,否则它将无法知道它应该计入哪些评论。