How will your grid cope with the number of rows changing between your first query to get the count and subsequently fetching the pages?
I don't think you can know the number of pages of results up front like this. CouchDB pagination usually follows a different algorithm. For pages of size N, you query with ?limit=N+1 and omit the N+1'th from being displayed. If you get N+1 results, then you can display a 'next page' button. If it's selected, your startkey parameter is the N+1'th key. To paginate correctly when your view has more than one row for the same key, look at startkey_docid and endkey_docid. Afaik, couchdb does not provide you with the information you need to paginate correctly in the manner you describe. Other b-tree implementations could give the number of rows between startkey/endkey efficiently, and other databases could provide a Cursor that would show you the results as of a point in time. CouchDB does neither. B. On 2 April 2011 07:44, Nils Breunese <[email protected]> wrote: > If you set the reduce function of your view to '_count' you will get the > number of items. Query with ?reduce=false if you want to get the items > instead of just the count. > > See http://wiki.apache.org/couchdb/Built-In_Reduce_Functions for more info on > built-in reduce functions. > > Nils. > ________________________________________ > Van: Andrew Stuart (SuperCoders) [[email protected]] > Verzonden: zaterdag 2 april 2011 7:27 > Aan: [email protected] > Onderwerp: Need to get total rows of startkey/endkey range for paging > > Hey there folks > > I am issuing a query to a view which uses startkey and endkey to > constrain the range of values to be retrieved from the view. Within > this I am using skip and limit to page through the results. > > The problem is that I need the count of the number of total rows, not > of the view, but of the range defined by startkey and endkey. > > This is needed because I am putting the data into a paging grid, and > the paging grid needs to know the total rows so it knows how big to > make the grid and so it knows where the bottom is. > > If you are interested here is a sample query: > > http://192.168.1.108/couchdb/test/_design/blah/_view/by_surname2?startkey=%22s%22&endkey=%22s%E9%A6%99%22&_dc=1301721696775&page=4&skip=900&limit=300 > > Views do of course return the total number of items in the view, but I > need not the total items in the view but the total items in the > startkey/endkey range. > > Can anyone suggest if this is possible? > > thanks > ------------------------------------------------------------------------ > VPRO www.vpro.nl > ------------------------------------------------------------------------ >
