1

我正在编写一个应用程序,该应用程序涉及创建同一集合的多个子集,并按照此示例在不同的记录集下发布它们。

使用这个原则,我正在创建临时记录集。发布代码位于每个模板调用的方法中:

//Template
Template.item._item = function() {
    Meteor.call('publishMethod', foo);
    Meteor.subscribe('name-'+foo);
    return someFunction(foo);
}

//Method
Meteor.methods({ 
    'publishMethod' = function(foo) { 
        Meteor.publish('name-'+foo, function() { someFunction(foo); });
     });
});

//Common area
someFunction = function(foo) {
    return Collection.find({'foobar' : foo});
}

在此示例中, someFunction() 位于客户端和服务器之间的公共区域。someFunction() 返回基于 foo 的集合的子集。

我对上述方法有一些疑问:

  • 当使用相同的 foo 值调用方法时,Meteor 会打印“忽略名为 'name-foo' 的重复发布”。有什么方法可以检查记录集是否存在?
  • 有人担心这些记录集将继续发布,而不是释放内存。这些记录集只是客户端吗?或者他们会在服务器上积累吗?

这是我发现在同一个大型数据集上处理多个复杂查询的最佳方法,并且允许每个请求和页面发送特定字段。但是,我愿意接受建议。

提前致谢。

4

0 回答 0