If your "hit" document includes the post date, you could map with 
`emit([hit.post_date, hit.post_id])` and reduce with `_count`. Then you when 
queried with `?group=exact` you would have total hits per post and you could 
prune the results using startkey to last 7 days. You would still need to order 
all the recent matches yourself before limiting to 20 posts however. Assuming 
the number of posts in a week is not enormous it seems reasonable.

hth,
-nvw


On Jul 22, 2013, at 10:32 AM, Filippo Fadda wrote:

> OK, this answered to my question:
> 
> http://stackoverflow.com/questions/5571459/couchdb-view-query-with-multiple-key-values
> 
> It is never possible to query by criteria A and then sort by criteria B in 
> CouchDB.
> 
> So I have to get posts in a data range, then sort them by number of hits 
> myself.
> 
> -Filippo
> 
> 
> 
> On Jul 22, 2013, at 6:25 PM, Filippo Fadda wrote:
> 
>> Let's suppose I have a blog and I want display the popular posts, where 
>> popular means: the 20 posts, of the last seven days, ordered by number of 
>> hits.
>> To avoid conflicts I don't save the number of hits in the post itself, but I 
>> emit a new document every time a generic user displays a post.
>> Even using view collation I don't get a solution for this problem.
>> 
>> -Filippo
> 

Reply via email to