gpt4 book ai didi

CouchDB 中的分页?

转载 作者:行者123 更新时间:2023-12-02 23:30:53 29 4
gpt4 key购买 nike

我将如何实现分页所需的查询?

基本上,当请求第 1 页时,获取前 5 个条目。对于第 2 页,获取接下来的 5 页,依此类推。

我计划通过 couchdb-python 模块使用它,但这不会对实现产生任何影响。

最佳答案

CouchDB Guide对分页有很好的讨论,包括大量示例代码,此处:http://guide.couchdb.org/draft/recipes.html#pagination这是他们的算法:

  • 从 View 中请求 rows_per_page + 1
  • 显示 rows_per_page 行,将最后一行存储为 next_startkey
  • 作为页面信息,保留 startkeynext_startkey
  • 使用 next_* 值创建下一个链接,并使用其他值创建上一个链接

注意:在 CouchDB 中获取页面的正确方法是指定起始键,而不是像您想象的那样指定起始索引。但是你怎么知道从哪个键开始第二页呢?聪明的解决方案:“您不是请求一页的 10 行,而是请求 11 行,但只显示 10 行,并使用第 11 行中的值作为下一页的开始键。”

如果您希望多个文档发出相同的键,则除了 startkey 之外,您还需要使用 startdocid 才能正确分页。原因是仅 startkey 不再足以唯一地标识一行。如果您不提供startkey,这些参数将毫无用处。事实上,CouchDB 将首先查看 startkey 参数,然后如果多个潜在的起始行具有相同的键,它将使用 startdocid 参数进一步重新定义范围的开头但文档 ID 不同。 enddocid 也是如此。

关于CouchDB 中的分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/312163/

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