我正在编写一个应用程序,该应用程序涉及创建同一集合的多个子集,并按照此示例在不同的记录集下发布它们。
使用这个原则,我正在创建临时记录集。发布代码位于每个模板调用的方法中:
//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' 的重复发布”。有什么方法可以检查记录集是否存在?
- 有人担心这些记录集将继续发布,而不是释放内存。这些记录集只是客户端吗?或者他们会在服务器上积累吗?
这是我发现在同一个大型数据集上处理多个复杂查询的最佳方法,并且允许每个请求和页面发送特定字段。但是,我愿意接受建议。
提前致谢。