使用endkey参数进行CouchDB查询

Ric*_*ard 5 couchdb

我正在尝试为分页实现上一页功能,我认为使用endkey参数将返回上一页的行,其中最后一行将等于endkey.但是,甚至可以在没有startkey的情况下使用endkey参数进行查询吗?

例如:

http://something.com:5984/db3/_design/app/_view/a_view?limit=5&endkey=["ABC","6L","201112"]&descending=false

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

Jas*_*ith 5

查询endkey但不会startkey隐式地工作&startkey=null.也就是说,CouchDB将从第一行的第一个键开始并继续直到它到达endkey.

CouchDB始终从其启动键启动响应,并从其值limitendkey值(以先到者为准)停止响应.

要获取最后 5行,您需要向后扫描(降序),然后您的启动键就在您需要的位置.

?limit=5&startkey=["ABC","6L","201112"]&descending=true
Run Code Online (Sandbox Code Playgroud)

结果将按逆转(降序!)顺序排列.您可以在客户端中反转它们(它只有五行),或者_list在发送响应之前在CouchDB中编写一个函数来反转它们.