Vic*_*let 3 pagination couchdb limit offset
我正在使用CouchDB创建一个页面系统,显示:
从这篇文章的主题,我明白使用skip是次优的,我应该使用startkey属性来指定第一个文档,从那里读取11个文档,显示前10个并使用第11 个键来显示链接到下一页.困扰我的是上一页的链接.文章说:
将链接填充到上一页就像将当前的启动键带到下一页一样简单.如果没有先前的启动键,我们就在第一页.
此作品进入下一个页面时:当我从4页移到第5页我记得在上一个页面4,但是,当我从移动第5页回到第4页,我也没办法带过的startkey页面这怎么办?
是否可以(和推荐)endkey一起使用skip=10并limit=1找到上一页的第一个元素,以便我可以创建一个回链接?
实际上你只能要求11个没有的文件skip,这就是Futon所做的(看看CouchDB日志).
下一页和上一页的链接都是相似的:startkey是第一个或最后一个元素,skip=1避免重叠.然后,您必须正确使用该descending参数来获取以前的文档或下一个文档.
每当您要求页面时,CouchDB都会回答11个文档.让我们说第一个first的关键是最后一个的关键是last.分页链接如下所示:
"next": /db/_view/myview?descending=true&limit=11&startkey=last&skip=1
"back": /db/_view/myview?descending=false&limit=11&startkey=first&skip=1
Run Code Online (Sandbox Code Playgroud)
Etvoilà!你只需要扭转时显示他们收到的文件descending是false.(CouchDB指南中的"使用视图查找数据"很好地解释了这些参数与B树之间的关系.)
您可以轻松获取第一页或最后一页(limit=1以及descending真或假)的docid ,并获得一个看起来很像古典数据库(第一页,最后一页,上一页,下一页)的分页系统.
| 归档时间: |
|
| 查看次数: |
902 次 |
| 最近记录: |