看来一片关于mongodb分页的文章,讲了两种方法,第一种:skip()和limit(),尝试着按照思路和代码写出来,第二种方法按照数据id分页:
//Page 1
db.users.find().limit(size);
last_id=..
//Page 2
users = db.users.find({'_id'> last_id}). limit(size);
这样接口应该怎样写?不考虑跳页,只显示上一页,下一页。
看来一片关于mongodb分页的文章,讲了两种方法,第一种:skip()和limit(),尝试着按照思路和代码写出来,第二种方法按照数据id分页:
//Page 1
db.users.find().limit(size);
last_id=..
//Page 2
users = db.users.find({'_id'> last_id}). limit(size);
这样接口应该怎样写?不考虑跳页,只显示上一页,下一页。
采用skip()
和limit()
的方式吧
// query: 查询条件
// page: 当前页数 前端传入
// eachNum: 每页条数 前端传入
modle.find(query).skip((parseInt(page) - 1) * eachNum).limit(eachNum)
5 回答4.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.2k 阅读
如果考虑不跳页,使用第二种方式,效率更高,第一种方式需要遍历更多的索引建或者文档,而第二方式则不用。可以在两种不同的查询模式的语句后面加explain("executionStats")看一下执行统计就很清楚了。