On Jul 3, 2008, at 15:01, Bradford Winfrey wrote:
> Hello everyone, been stalking the mailing list for a while and
> thought this might be worthy of a post as I was asked to solve it,
> yet, I couldn't!
>
> Let's take the classic blog example document with the following
> fields/values:
>
> "_id": "1f2fc3955b91aed5e7369f0b0ba8214e",
> "_rev": "1226709986",
> "Author": "Bradford",
> "Type": "Post",
> "Body": "Just mentioning this for a sample blog post.",
> "PostedDate": "2008-07-02T23:22:12-04:00",
> "Subject": "My Fine Blog Post",
> "Tags": ["octopus","hockey","squidward","bradford","recreation"]
>
> Next, I'd like to find each blog post that contains ANY of the
> following tags ["octopus","hockey"]. Now, generally speaking this
> isn't so bad. We could write a simple view:
> function (doc) {
> if (doc.Type == 'Post') {
> for (var i = 0;i < doc.tags.length; i++) {
> emit(doc.tags[i],doc);
> }
> }
> }
>
> We would get back each one of our tags as a key, yea? Only if we
> supplied one at a time. So how does one go about supplying a range,
> array (not sure what we'd call it here) of keys to be searched on?
> http://...?key=["octopus","hockey"] maybe? I'm unsure of the plan
> of attack for such a thing. Maybe I'm just going about it in the
> wrong direction. Any thoughts?
have a look at the bottom of http://wiki.apache.org/couchdb/HttpViewApi
for the view query options. Specifically the startkey= and endkey= ones.
Note that you only get consecutive ranges with that. To retrieve
arbitrary
tags, you'd need to run a query per tag with the key= option.
Cheers
Jan
--
|