我有一个分页栏,它控制我在表格中显示的数据(每次移动到新页面时我都会重新订阅)。我正在使用的集合有 25,000 个文档,它可能会获得 100,000 个文档。前几页的一切似乎都按预期工作,但在第 8 页之后,事情开始变得越来越慢,如果我一次从 1 跳到 10,数据不会加载(如果我从 1 跳到最后也是一样一个第 2546 位)。当我订阅和发布时,我一直在检查跳过和限制的值,它们总是正确的,所以问题是,有没有更好的方法来处理订阅和发布中的大量数据????这是我的代码的一部分
// both
c_frameworks = new Mongo.Collection("framework");
//client
var skip = this.data.limit * obj.page // page number 0 ... 2546
Meteor.subscribe("framework", skip, this.data.limit);
Template.myT.helper({
return c_frameworks.find({}, {
sort: ["_id", "asc"],
skip: this.skip,
limit: this.limit
});
});
// server
Meteor.publish("framework", function (mySkip, myLimit) {
check(mySkip, Number);
check(myLimit, Number);
return c_frameworks.find({}, {sort: ["_id", "asc"], skip: mySkip, limit: myLimit});
});
更新:
我刚刚找到了这个信息,它说明了为什么这种方法很慢但解决方案不是理想的