R
R
Roman no_name2014-07-31 12:01:46
CouchDB
Roman no_name, 2014-07-31 12:01:46

How to use startkey_docid in CouchDB pagination?

We have the following data:

{"id":"s_04af0e7bec3b48eab2577ef7c946ed8d","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_05e9e025f575456a930fe8e6747ec705","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_0752554260bd443e91616618d718cc72","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_08a2a23dff124e6183af54a623478a86","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_0a3ddc7c70594227a51d5b46003bbab6","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_0d5c50d755cc4df89e6b632dd0d92ee1","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_0db14aa2b80442dbba9130871d2e2268","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_0feff620822d498583607be574879be2","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_12ca5d2a865440e4af50e34daccc3b55","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_1736abee6ba045bf9a9206e01184b57f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_17b81704a6174696a58654461122e67c","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_19e3c8946d1246408915a502058e340b","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_1b193c0b290c4d75abd5a7077a20b9f9","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2127f06e3ee74c1194f142e20ed8c7c3","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_236a835b4c434083a923c4348d90ef74","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2429eac1e88a41cca631b6270d942f15","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2623ef06248c45ab9eecf6ccff555c16","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_26b63def9aa74519a14d6a343d3352cb","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2b3f0c5815cc4aa7b792aa5db5d58300","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2d2dea91430a4a3d89a1887f7dc031c2","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2e16913233654389b4654de9a0554ee0","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2f4e97047b7b402da6528edcda46ae59","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2f998197e1e84c76bc7d2c7b2a7d1794","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_2f9ced63f3a0465c884ce272e5d645c3","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_3139d2fded2045ae85a735fe56c502a5","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_323e41efd8584f41a1e6de9e9dbb2a4b","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_34e7bfa10079409f8de794ee78bb4516","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_35307b7b71be40a583db8dc8a0e8eec9","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_35fbd621ece54103923cb18c3a41652f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_382659a7763049caa8abf75d3dcb8f24","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_3853f70116c54357a032f7fdcd3279d8","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_426eae9300a34650943b592ea02aa96f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_476346889e5c4f9086ec69476cec1fa8","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_47edd38edc1943f6a3cf50922fda4f96","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_494c077d5c054904b6110318b87953f6","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_4c57ca12d33c4af8a0b6f0858ee0d1e1","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_4d6559882fce4e6792ab9de34a057d1e","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_4ffa89c7446a4640aced24dba608529a","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_5495c73222bf4a3f8801bd1af2dba97c","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_59bda4fad03d414c86f51f8c0f5d72e9","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_5af00f72e1af45e1a48388855657087f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_5bccd025b9bc4bfdb251fe57cb7f5bb4","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_5c78b78e2d294e00aba3ef29e4440363","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_5ef7217c209a45bd8a99de5c751f798d","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_62437570421a4fc58ba7b889d8c9c91f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_641c13089eaa49c2a367e76236d0d367","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_654f9a27b7ff41b8937d9626d34d41c3","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_6d46ba51864c4449ac5db64ffdcf463b","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_6d5ce1f816bf47e9a2a329ddd5ef83c5","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_6d67075883a342d780d27fa3ed451e8e","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_710e63ff827a4e7aa84b017f56f7366f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_7176e3f64c9041ab855a90d7d2535e58","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_7285adb359ca4ac7a9d0a2c0d6df34fa","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_74d0ebb842804288b1d4ad5ff4e3c5de","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_75f8feb317a542d88916943417bcc4fe","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_77d930494bf6464bb3b60182be8e1f8f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_788906ae76f5474c9b14cf7bbc60e27c","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_7a159268e8934d4cb1ba93128918130f","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_7d60ea0ca71144339c54de10fab32eaa","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_7f0ee3abe281498ab7e3cf3fa285d78c","key":"l_u_adminadmincom_obzvon","value":null},
{"id":"s_7ffdfcf3864b46e6884f2d2ec81d618f","key":"l_u_adminadmincom_obzvon","value":null},

The manual and most sites describe that startkey_docid can be used for quick pagination. Since I have only one parameter in the key, other methods are not appropriate.
I tried to use such requests but all in vain:
startkey_docid=s_7d60ea0ca71144339c54de10fab32eaa
startkey_docid="s_7d60ea0ca71144339c54de10fab32eaa"
startkey="l_u_adminadmincom_obzvon"&startkey_docid=s_7d60ea0ca71144339c54de10fab32eaa
startkey="l_u_adminadmincom_obzvon"&startkey_docid="s_7d60ea0ca71144339c54de10fab32eaa"
startkey="l_u_adminadmincom_obzvon"&endkey="l_u_adminadmincom_obzvonZ"&startkey_docid=s_7d60ea0ca71144339c54de10fab32eaa
startkey="l_u_adminadmincom_obzvon"&endkey="l_u_adminadmincom_obzvonZ"&startkey_docid="s_7d60ea0ca71144339c54de10fab32eaa"

Maybe someone came across and knows why it does not work. There are many such requests on the Internet and no one gives a complete answer on how to use it correctly.
For example, a few resources:
First
Second
Third
Thanks in advance.
ps/ Don't worry be happy

Answer the question

In order to leave comments, you need to log in

1 answer(s)
R
Roman no_name, 2014-07-31
@Romastr

There is also an option to do pagination using skip, but then the question arises: if we make a request that reaches limit=1000 records by the limit and let’s write skip=2000, then we get 3000 records from the database and skip the first 2000 thousand or immediately skip 2000 and we get 1000. And how much slower will such a request work, in contrast to using startkey_docid?
SOLVED: In such cases, a query like

limit=10&key=%22l_u_adminadmincom_spisok-2014-07-23%22&startkey_docid=s_0cb04ab972de49e783c2cee7dfc688a6

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question