因为经常要做分页, 所以需要用到 skip和limit来获取当前页的值,但是 在获取总页数, 所以有没有方式可以在一次查询中获取 总页数和 当前页的值?现在是 分两次查询,结果再结合在一起。1. count()2. .skip(*).limit(*)
3 回答

牛魔王的故事
TA贡献1830条经验 获得超3个赞
没有一次查询返回的,不过你可以将这两个方法封装一下,每次调用不就可以么?
async function getPage(pageNo, pageSize, query) {
let count = await db.count(query);
let list = await db.find(query).skip((pageNo - 1)*pageSize).limit(pageSize);
return {
count,
list
};
}

回首忆惘然
TA贡献1847条经验 获得超11个赞
我觉得楼上的两种做法欠妥,因为count的实现是这样的
> db.tasks.count
function ( x ){
return this.find( x ).count();
}
这是在mongodb的cli里面输出的。
一句话概述就是count其实还是调用的find。
所以这种查两次数据库的方法我认为是欠妥的。
添加回答
举报
0/150
提交
取消