关于mongodb分页的问题

看来一片关于mongodb分页的文章,讲了两种方法,第一种:skip()和limit(),尝试着按照思路和代码写出来,第二种方法按照数据id分页:

//Page 1
db.users.find().limit(size);
last_id=..
//Page 2
users = db.users.find({'_id'> last_id}). limit(size);

这样接口应该怎样写?不考虑跳页,只显示上一页,下一页。

阅读 6k
5 个回答

如果考虑不跳页,使用第二种方式,效率更高,第一种方式需要遍历更多的索引建或者文档,而第二方式则不用。可以在两种不同的查询模式的语句后面加explain("executionStats")看一下执行统计就很清楚了。

采用skip()limit()的方式吧

// query: 查询条件
// page: 当前页数 前端传入
// eachNum: 每页条数 前端传入
modle.find(query).skip((parseInt(page) - 1) * eachNum).limit(eachNum)

我刚好做这个,采用的是AJAX。 跟一楼答案一样, 前台传一个页数就OK了。

第二种效率高,一般采用第二种方案。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题