0

我有一个分页栏,它控制我在表格中显示的数据(每次移动到新页面时我都会重新订阅)。我正在使用的集合有 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});
});

更新:

我刚刚找到了这个信息,它说明了为什么这种方法很慢但解决方案不是理想的

在mongo中对大量记录进行缓慢分页

4

0 回答 0