gpt4 book ai didi

pagination - "Previous"链接 - 相当于 LIMIT x OFFSET y?

转载 作者:行者123 更新时间:2023-12-03 09:48:26 25 4
gpt4 key购买 nike

我正在使用 CouchDB 创建一个页面系统,显示:

  • 每页 10 个项目
  • 上一页的链接(如果有的话)
  • 下一页的链接(如果有的话)

来自 this article关于这个话题,我知道使用 skip 是次优的,我应该改为使用 startkey 属性来指定第一个文档,从那里读取 11 个文档,显示第一个10 并使用第 11th 键显示下一页的链接。困扰我的是指向上一页的链接。文章说:

Populating the link to the previous page is as simple as carrying the current startkey over to the next page. If there’s no previous startkey, we are on the first page.

这在转到下一页时有效:当我从第 4 页移到第 5 页时,我记得上一页是第 4 页。但是当我从第 5 页移回到第 4 页时,我无法继承第3页的startkey。这怎么行?

是否可以(并推荐)使用 endkey 以及 skip=10limit=1 来查找第一个元素上一页,以便我可以创建返回它的链接?

最佳答案

事实上,您可以在没有 skip 的情况下只请求 11 个文档,这就是 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

瞧瞧!当 descendingfalse 时,您只需在显示文档之前反转文档。 ("Finding your data with views" from the CouchDB guide 很好地解释了这些参数与 B 树之间的关系。)

奖金

可以轻松获取首页或最后一页的docid(limit=1 and descending true or false),得到一个分页系统,看起来很像经典数据库中的一些东西(第一个、最后一个、上一个、下一个)。

关于pagination - "Previous"链接 - 相当于 LIMIT x OFFSET y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3924089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com