incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Kocoloski <kocol...@apache.org>
Subject Re: multiple range queries via POST?
Date Tue, 27 Oct 2009 14:55:14 GMT
On Oct 27, 2009, at 10:50 AM, Alex P wrote:

> i know this is currently unsupported (and may be more of a question  
> for the
> dev list), but is there a technical reason while multi-range queries  
> can't
> be submitted to couch (slight ah-hah moment at the end)?
>
> the specific problem i'm trying to address is this:
>
> suppose i have a message document, and a corresponding map function:
>
> function (doc) {
>  if (doc.docType != 'message') return;
>
>  emit(doc.owner, null);
> }
>
> if i wanted to pull back all messages for users foo and bar, i'd  
> simply do a
> POST path/to/couch keys = ['foo', 'bar']. now let's make this data  
> come back
> sorted by create date:
>
> function (doc) {
>  if (doc.docType != 'message') return;
>
>  emit([doc.owner, doc.createDate], null);
> }
>
> also cool, but now, to retrieve all messages pertaining to a single  
> user, i
> need to do GET path/to/couch startKey=['foo']&endKey=['foo', 'a'].  
> this
> works, but it now means that if i want all messages pertaining to  
> both foo
> and bar, i need to run two separate queries.
>
> as i'm writing this, i think i'm starting to see that the problem  
> would be
> with having to merge overlapping ranges, but i still would like  
> someone else
> to weigh in on this
>
>
> thanks,
> alex.

Hi Alex, internally, multiple keys are actually just a special case of  
multiple ranges.  So that part is easy.  We would want to be clear  
about how we handle overlapping ranges, but it's not that hard of a  
problem really.

I wonder what the HTTP call for this should look like?

Adam


Mime
View raw message