我有一个非常大的集合(大约有200个字段~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
因此,当用户订阅整个集合(不包括服务器发布中的某些字段)并使用带有自定义过滤器,排序和顺序的Collection.find时,客户端真的很难工作
我尝试使用带选项的发布:即客户定义的过滤器&但是在这种情况下,我在服务器上出现了太多的内存泄漏,几个小时后就出现了史诗失败:)。
有人可以为这种集合建议一些发布 - 订阅架构吗?我不是要求明确的解决方案,而是要求一些有用的想法
由于
答案 0 :(得分:2)
答案 1 :(得分:0)
不要发布所有文件。发布您想要显示的文档并使用分页。我想在Meteor上写一篇关于分页的教程,但我现在没有太多时间。
使用Iron Router及其waitOn功能进行客户端订阅。
Router.map(function () {
this.route('postShow', {
path: '/posts/:page',
before: function() {
Session.set('page', this.params.page);
},
waitOn: function () {
//how many documents we want to per page
var perPage = 50;
return Meteor.subscribe('posts', {}, {
//limit
limit: perPage,
//we need to compute how many documents to skip
skip: perPage * Session.get('page') - perPage
});
},
data: function() {
return {
//variable posts available for Handlebars: {{#each posts}}...
posts: Posts.find()
}
}
});
});
并发布:
Meteor.publish('posts', function(params, opts) {
return Posts.find(params, opts);
});