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

Reply via email to