Thanks Hi, Adam, i know your mean, but my sort key must isn't available at map time(it caculated in reduce func)
Hi, Chris, from your answer may i say that couchdb doesn't directly support this feature now? maybe i don't use couchdb properly, can you give me some suggestion? my application scenario is: I have a php+mysql application, and in some part i save some user's behavior( or you could say user's score stats.) as couchdb document with Phly adapter, for the analyzing without affecting mysql's query, now i want get stats result from the couchdb view to display to users on the web page, so the previous question pop out? i also need paging and sorting is that a proper usage? On Sun, Jun 21, 2009 at 3:09 AM, Adam Wolff <[email protected]> wrote: > Hmm. I guess this only works if the sort key is available at map time. > This is more for finding uniques. > > A > On Saturday, June 20, 2009, Adam Wolff <[email protected]> wrote: > > A little jumpy with the space bar today. As I was saying,Depending on the > nature of your reduce function, you may be able to do something like this: > > emit([key, sortKey], {value: value, sortKey: sortKey}) > > > > Then you reduce to the top K values and emit a sorted list that looks > like: [ {value : value, sortKey:first} .... {value: value, sortKey: Kth} ] > > > > You have to arbitrary limit the number of values due to this bug/feature: > > > http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#head-83d2e6cce911a0d314d0c5234ff5f19646408113 > > > > If you want to page, you query the index starting with [key, Kth] and > then reduce the result against the list from the first page (in fact, you > can use the reduce function you write in the DB for this if you have an app > environment where you can run javascript.) > > > > A > > On Sat, Jun 20, 2009 at 11:05 AM, Adam Wolff <[email protected]> wrote: > > One patter to solve for this appears to be to index by the sort key, so > you > > > > On Sat, Jun 20, 2009 at 8:13 AM, Chris Anderson <[email protected]> > wrote: > > On Sat, Jun 20, 2009 at 12:49 AM, hhsuper<[email protected]> wrote: > >> Thanks Jan, > >> > >> when i need to paginate the data queried from view, you mean the sorting > and > >> paginating should all outside the couchdb? > > > > Sorting by value is mathematically tough, if you want to read more > > about the underlying issues check out > > http://labs.google.com/papers/sawzall.html > > > > If you can live with the sorted order being out of date, the simplest > > thing to do is copy the results of a group=true query to another > > database (via a scripting language like ruby or python) and then use a > > view to sort those results by value. It won't be incrementally updated > > as records are updated in the original database, but it will give you > > an exact ordering by value. > > > > We are thinking of building something like this into CouchDB because > > it is such a common query, but for now you've got to do it yourself. > > > > Chris > > > >> > >> On Sat, Jun 20, 2009 at 3:39 PM, Jan Lehnardt <[email protected]> wrote: > >> > >>> > >>> On 20 Jun 2009, at 03:05, hhsuper wrote: > >>> > >>> Hi, > >>>> > >>>> i have a view (impl with map/reduce function), the value need to be > >>>> caculated in reduce function(for group reason etc.), and then how > could i > >>>> sorting by the value column? > >>>> > >>> > >>> You need to sort by value outside of CouchDB. > >>> > >>> Cheers > >>> Jan > >>> -- > >>> > >>> > >>> > >> > >> > >> -- > >> Yours sincerely > >> > >> Jack Su > >> > > > > > > > > -- > > Chris Anderson > > http://jchrisa.net > > http://couch.io > > > > > > > > > > > -- Yours sincerely Jack Su
