Thanks for your reply, but somehow it does not work for me. I created the view you described.

http://127.0.0.1:5984/books/_view/query/byAuthor

returns all objects. But

http://127.0.0.1:5984/books/_view/query/byAuthor?key=Tolkien

returns an error {"error":"EXIT"...

what's going wrong?

Thanks,

Bernd Eickhoff
Am 28.12.2008 um 22:15 schrieb Paul Davis:

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 <[email protected]> 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


Reply via email to