incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brad King" <brk...@gmail.com>
Subject Re: Views using JSON Arrays
Date Thu, 03 Jul 2008 13:52:30 GMT
Might be a hack, but would a collated view work for getting two arbitrary tags?

function (doc) {
  for(var i=0; i<doc.Tags.length; i++)
    emit([doc.Tags[i], doc.Tags[i]], null);

then you pass in ?key=["octopus","hockey"]


On Thu, Jul 3, 2008 at 9:15 AM, Jan Lehnardt <jan@apache.org> wrote:
>
> 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