Das ist alles sehr interessant, mir aber etwas zu abstrakt
Wie würde denn eine Abfrage aussehen die mir alle Betriebssystem liefert die mit "L" anfangen?
Und warum muss ich den Wert für den Schlüssel wie im Beispiel "MacOS" direkt in das JavaScript schreiben, ich will ja vielleicht auch mal nach "Linux" oder "Windows" suchen, kann man den Wert nicht als Parameter für die Suche übergeben?
In der Praxis will ich doch z.B. nach Vor- und Nachnamen suchen, wie würd ich dass den machen?
Suchen kannst du dann, indem du alle Dokumente des Views mit den Schlüsseln zwischen ["Mü", ""] und ["N",""] abfragst. Es gibt nicht wie bei SQL Funktionen um zB bei Abfragen bestimmte Infos zu filtern. Du must solche Anforderungen vorher fest in die Views verdrahten, da diese vorgeneriert werden.
Von Jochen Schnelle am Sa, 10. Juli 2010 um 21:12 #
Dann musst du nur "MacOS" gegen "Linux" ersetzen...
Grundsätzlich ist es so, dass CouchDB (genau so wie Key-Value-Stores) erstmal nur nach Schlüsseln suchen kann und dann deren Wert ausgibt.
Eine Abfrage wie "zeig' mir alle Schlüssel in allen Dokumenten, die den Wert 'foo' haben" musst du i.d.R. softwareseitig umsetzen, also nicht als View in der DB.
Tipp: CouchDB installieren und spielen. Es ist nämlich eigentlich ziemlich simpel.
Das ist alles sehr interessant, mir aber etwas zu abstrakt
Wie würde denn eine Abfrage aussehen die mir alle Betriebssystem liefert die mit "L" anfangen?
Und warum muss ich den Wert für den Schlüssel wie im Beispiel "MacOS" direkt in das JavaScript schreiben, ich will ja vielleicht auch mal nach "Linux" oder "Windows" suchen, kann man den Wert nicht als Parameter für die Suche übergeben?
In der Praxis will ich doch z.B. nach Vor- und Nachnamen suchen, wie würd ich dass den machen?
In der Praxis sieht das so aus, das du einen Index (Hier: View) aufbaust der die von dir zu durchsuchenden Informationen enthält:
function(doc) {
emit([doc.firstname, doc.lastname], doc);
}
Suchen kannst du dann, indem du alle Dokumente des Views mit den Schlüsseln zwischen ["Mü", ""] und ["N",""] abfragst. Es gibt nicht wie bei SQL Funktionen um zB bei Abfragen bestimmte Infos zu filtern. Du must solche Anforderungen vorher fest in die Views verdrahten, da diese vorgeneriert werden.
Dann musst du nur "MacOS" gegen "Linux" ersetzen...
Grundsätzlich ist es so, dass CouchDB (genau so wie Key-Value-Stores) erstmal nur nach Schlüsseln suchen kann und dann deren Wert ausgibt.
Eine Abfrage wie "zeig' mir alle Schlüssel in allen Dokumenten, die den Wert 'foo' haben" musst du i.d.R. softwareseitig umsetzen, also nicht als View in der DB.
Tipp: CouchDB installieren und spielen. Es ist nämlich eigentlich ziemlich simpel.
Gruß, Jochen
Du kannst nach dem Key mittels Parameter bei der HTTP Abfrage filter:
...view....?startkey="a"&endkey="b"