couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <...@apache.org>
Subject Re: Views using JSON Arrays
Date Thu, 03 Jul 2008 13:15:34 GMT

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
--

Mime
View raw message