计算 Meteor 中帖子中的评论数

Posted

技术标签:

【中文标题】计算 Meteor 中帖子中的评论数【英文标题】:Count number comments in post in Meteor 【发布时间】:2015-09-20 08:19:37 【问题描述】:

如果我想计算一个帖子的 cmets 数量,我必须在每次创建或删除新评论时保存 cmets 的数量。

在每次创建或删除评论时,确保帖子更新为 cmets 数量的最有效和安全的方法是什么?我试过Curser.observe(),但它似乎有时会引起一些问题。我查看了我的代码,应该没问题,但有时会发生一些不应该发生的变化,所以我担心当同时创建多个对象时,observe() 会导致一些问题。

我查看了meteor-collection-hooks,但他们不使用observe。我认为observe 是最好的选择,因为它是原生的。其他人如何解决这个问题?

【问题讨论】:

【参考方案1】:

不要使用观察。它消耗资源并且不会超过一台服务器(在 N 个服务器中观察变化,您将有 N 个增量)。我可以推荐两种可能的选择:

挂钩

按照您的建议,您可以使用collection-hooks 来修改计数。具体来说,您可能希望在您的Comments 集合上使用after.insert 和after.remove。 Hooks 不需要额外的资源——它们只是修补底层集合代码来运行你的回调。

推荐阅读:A Look At Meteor Collection Hooks

方法

如果您使用methods 插入和删除您的cmets,您还可以同时修改您的评论数。这具有不需要外部包的优点,但是它还需要在您的方法中混合一些关注点。

【讨论】:

谢谢!很高兴终于明白为什么他们无缘无故地快速增长:D

以上是关于计算 Meteor 中帖子中的评论数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 mongodb 和 mongoose 从帖子模型中计算整体帖子活动(喜欢、不喜欢、评论)和用户模型中的参考总和

为recyclerview更新帖子的评论数

如何获得每个帖子的 php 总评论数?

东方财富爬虫url次数最大

每个帖子的评论数

即使帖子和评论链接,帖子中的评论数组也不显示评论ID