couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nathan Stott <nrst...@gmail.com>
Subject Re: multiple range queries via POST?
Date Tue, 27 Oct 2009 18:41:22 GMT
I opened a JIRA ticket about this some time ago:
https://issues.apache.org/jira/browse/COUCHDB-523
<https://issues.apache.org/jira/browse/COUCHDB-523>

On Tue, Oct 27, 2009 at 12:46 PM, Paul Davis <paul.joseph.davis@gmail.com>wrote:

> Indeed. Good catch.
>
> On Tue, Oct 27, 2009 at 12:42 PM, Adam Wolff <awolff@gmail.com> wrote:
> > makes sense. should that be "ranges"?
> > A
> >
> > On Tue, Oct 27, 2009 at 8:49 AM, Paul Davis <paul.joseph.davis@gmail.com
> >wrote:
> >
> >> I'd rather see something like:
> >>
> >> {keys: [k1, k2, k3]}
> >>
> >> or
> >>
> >> {range: [query_params_1, query_params_2]}
> >>
> >> with
> >>
> >> query_params_1 = {startkey: k1, endkey: k2} etc etc
> >>
> >> With ranges and keys being mutually exclusive
> >>
> >> Paul Davis
> >>
> >> On Tue, Oct 27, 2009 at 11:37 AM, Adam Wolff <awolff@gmail.com> wrote:
> >> > We could really use this feature too. Right now, we do this:
> >> >
> >> > post("/path_to_view/", {keys : keys});
> >> >
> >> > For this feature, maybe the syntax could be
> >> >
> >> > post("/path_to_view/", {keys : [{start:[k1, null], end:[k1, {}]},
> >> > {start:[k2, null], end:[k2, {}]} });
> >> >
> >> > A
> >> >
> >> >
> >> > On Tue, Oct 27, 2009 at 7:55 AM, Adam Kocoloski <kocolosk@apache.org>
> >> wrote:
> >> >
> >> >> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message