带有endkey参数的CouchDB查询

带有endkey参数的CouchDB查询,couchdb,Couchdb,我试图实现分页的上一页功能,我认为使用endkey参数将返回上一页的行,其中最后一行将等于endkey。但是,甚至可以只使用endkey参数而不使用startkey进行查询吗 例如: http://something.com:5984/db3/_design/app/_view/a_view?limit=5&endkey=[“ABC”、“6L”、“201112”]&降序=假 运行此查询时,最后一行的键不等于我指定的endkey。相反,CouchDB似乎只抓取视图中的前5行,并完全忽略endk

我试图实现分页的上一页功能,我认为使用endkey参数将返回上一页的行,其中最后一行将等于endkey。但是,甚至可以只使用endkey参数而不使用startkey进行查询吗

例如:


http://something.com:5984/db3/_design/app/_view/a_view?limit=5&endkey=[“ABC”、“6L”、“201112”]&降序=假


运行此查询时,最后一行的键不等于我指定的endkey。相反,CouchDB似乎只抓取视图中的前5行,并完全忽略endkey参数。

使用
endkey
而不是
startkey
的查询将隐式地像
&startkey=null
一样工作。也就是说,CouchDB将从第一行的第一个键开始,然后继续,直到到达endkey

CouchDB总是从其startkey开始响应,并从其
limit
endkey
值(以先到者为准)停止响应

要获取最后5行,您需要向后(向下)扫描,然后您的startkey就在您需要它的地方

?limit=5&startkey=["ABC","6L","201112"]&descending=true
结果将按相反的顺序(降序!)。您可以在客户端中反转它们(只有五行),或者在CouchDB中编写一个
\u list
函数,在发送响应之前反转它们