To pull that off you'd need to have every single combination of tags in the index which I don't see happening. Maybe with the reduce, I don't know. what you can do is emit([tag1, tag2], null); and then query with key=[tag1, tag2]]; and that would work the octopus and hockey-case you line out here, but not in general. Cheers Jan -- On Jul 3, 2008, at 15:52, Brad King wrote: > Might be a hack, but would a collated view work for getting two > arbitrary tags? > > function (doc) { > for(var i=0; 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 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 >> -- >> >