2011-08-26 71 views
5

我想實現分頁的上一頁功能,我認爲使用endkey參數會返回上一行的最後一行將等於endkey的上一頁的行。但是,甚至可以僅使用endkey參數進行查詢而不使用startkey?帶endkey參數的CouchDB查詢

例如:

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

當我運行此查詢,最後一排的關鍵不等於我指定的endkey。相反,似乎CouchDB只是抓住視圖中的前5行並完全忽略endkey參數。

回答

5

endkey但不startkey的查詢將隱含地工作,如&startkey=null。也就是說,CouchDB將從第一行的第一個鍵開始並繼續,直到達到endkey。

CouchDB始終從startkey啓動響應,並停止響應的limitendkey值(以先到者爲準)。

要獲取最後 5行,您需要向後掃描(降序),然後您的startkey就在您需要的地方。

?limit=5&startkey=["ABC","6L","201112"]&descending=true 

結果將顛倒(降序!)順序。您可以在您的客戶端(僅有五行)中將其反轉,或者在CouchDB中寫入_list函數以在發送響應之前將其反轉。

+0

太好了。謝謝你清理那個。 – Garrett