我实现了猫鼬分页,以加快查询速度,在UI(Angular)上,我有分页,该分页从该路由中获取数据。但是更改页面时仍然很慢
第1页的加载速度很快,但是当我更改页面时,要花费很多时间。假设从第1页到第5页加载数据需要1.25分钟。
这是我的代码
router.get("/report",cache(30), (req, res) => {
var page = parseInt(req.query.page) || 1;
const pageSize = 5;
Reports.find({}).then(requests => {
const pager = paginate(requests.length, page, pageSize);
const pageOfitems = requests.slice(pager.startIndex, pager.endIndex + 1);
return res.status(200).json({
pager,
pageOfitems
})
})
});
您可以看到我也实现了Cache,但这并没有提高性能
答案 0 :(得分:0)
您可以使用聚合查询来代替查找查询,而可以限制所需的记录并跳过要跳过的记录。例如,对于第一个请求,您只想加载10条记录。在这种情况下,您将跳过0条记录并限制为10。在下一个分页请求中,您将跳过10条记录并再次限制为10。 这是一个这样的示例https://mongoplayground.net/p/fCtlTBazdY6
Reports.aggregate()
.skip(page)
.limit(pageSize)
.exec().then(....
希望它能对您有所帮助。