mongo查询时,能否先统计数量,再获取skip和limit后的值?

因为经常要做分页, 所以需要用到 skip和limit来获取当前页的值,

但是 在获取总页数, 所以有没有方式可以在一次查询中获取 总页数和 当前页的值?


现在是 分两次查询,结果再结合在一起。


1. count()

2. .skip(*).limit(*)


holdtom
浏览 987回答 3
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    };}

回首忆惘然

我觉得楼上的两种做法欠妥,因为count的实现是这样的> db.tasks.countfunction ( x ){    return this.find( x ).count();}这是在mongodb的cli里面输出的。一句话概述就是count其实还是调用的find。所以这种查两次数据库的方法我认为是欠妥的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript