incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Davis" <paul.joseph.da...@gmail.com>
Subject Re: select where
Date Sun, 28 Dec 2008 21:15:59 GMT
Behold the power of slices!

function(doc)
{
    if(doc.author) emit(doc.author, 1);
}

All docs that have Tolkien as an author:

http://127.0.0.1:5984/db_name/_view/design_doc/foo?key="Tolkien"

Obviously, s/Tolkien/Rowling/ for books by Rowling.

The more important part is this though, say you wanted all books with
authors alphabetically from Rowling to Tolkein:

http://127.0.0.1:5984/db_name/_view/design_doc/foor?startkey="Rowling"&andkey="Tolkien"

And remember, you can emit arbitrary JSON. There's a defined sort
order over the entire range of JSON. See the View collation wiki page.

HTH,
Paul Davis

On Sun, Dec 28, 2008 at 4:06 PM, Bernd Eickhoff <me@mymonster.net> wrote:
> Hello,
>
> I am trying to get to grips with Couchdb. Though it looks very interesting,
> I just dont understand how to query Couchdb for an abitrary value, as is
> possible with sql. Imagine I had a number of very simple documents, like:
>
> {"_id":"b1","_rev":"3573740128", "book":"Potter","author":"Rowling"}
>
> and I wanted to find all books written by Mr Tolkien?
>
> I could create a view like:
>
> function(doc) { if (doc.author == "Tolkien") emit(null, doc); }
>
> and then query:
>
> http://127.0.0.1:5984/books/_view/byauthor/tolkien
>
> Is there any way to pass "Tolkien" as a variable to the view, or do I have
> to create a new view, every time I want to query for another keyword?
>
> Thanks
>
> Bernd
>

Mime
View raw message