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