如果我想计算帖子的评论数量,每次创建或删除新评论时,我都必须保存评论数量。
每次创建或删除评论时,确保使用评论数更新帖子的最有效和最安全的方法是什么?我试过Curser.observe()
但似乎有时会引起一些问题。我查看了我的代码并且它应该没问题,但有时会发生一些变化,当他们不应该这样做时,我担心当同时创建多个对象时,observe()会导致一些问题。
我查看了meteor-collection-hooks
并且他们没有使用observe
。我认为observe
是最好的选择,因为它是原生的。其他人如何解决这个问题?
答案 0 :(得分:4)
不要使用观察。它消耗资源并且不会扩展到一个服务器(在N个服务器中观察更改,您将有N个增量)。我可以推荐两种可能的选择:
<强>钩强>
根据您的建议,您可以使用collection-hooks修改计数。具体而言,您可能希望在Comments
集合中使用after.insert和after.remove。钩子不需要额外的资源 - 它们只是修补底层的集合代码来运行你的回调。
推荐阅读:A Look At Meteor Collection Hooks
<强>方法强>
如果您使用methods插入和删除评论,则还可以同时修改评论计数。这样做的好处是不需要外部包装,但是它也需要在您的方法中混合使用。