从Meteor中的服务器发布(发送)值?

时间:2015-07-30 16:33:49

标签: meteor

我有一个我发布到客户端的集合,限制了文档的数量并向客户端发送了重要的文档。像这样:

Meteor.publish('list', function() {
  return someList.find( { matters: true }, { limit: 50 } );
});

但我也想向客户发送该集合中的其他一些值,例如文档总数,某些字段的平均值等。

如何让服务器计算它并将值发送给客户端如何显示它?

2 个答案:

答案 0 :(得分:1)

对于简单计数,您可以使用publish-counts包。

对于更高级的东西(如平均水平)可以:

  1. 使用观察者 - 请参阅我对this question的回答。
  2. 将统计信息写回集合并发布。实现这一目标的一个好方法是使用collection-hooks。基本上,每次更新后,您都可以修改包含平均值和其他统计信息的文档。
  3. 编写method来计算值并将它们返回给客户端。这具有作为最简单的解决方案的优点,但是它缺乏反应性。

答案 1 :(得分:1)

我个人使用全局变量,并在方法中返回它。

%g

然后在客户端我只是在帮助器/事件中调用该方法:

collec_count = 0;

Meteor.publish('list', function() {
    var coll = someList.find( { matters: true }, { limit: 50 } );
    collec_count = coll.count();
    return coll;
});

Meteor.methods({
findDB_count: function () {
    return collec_count;
},