Database Reference
In-Depth Information
?skip=X : Anzahl der übersprungenen Einträge, bevor der erste ausgegeben wird
(Offset)
?group=true/false : Wenn eine Reduce-Funktion vorhanden ist, wird bei Angabe
dieses Parameters nicht die Reduce-Ausgabe ausgegeben, sondern die Zwischen-
ergebnisse pro Key (entspricht einem „Group by Key“).
Es hat sich eingebürgert, ein Attribut type zur Definition des Dokumententyps zu benutzen,
um so gleichartige Dokumente zusammenzufassen. Die Alternative zu type wäre es, ein-
zeln zu testen, ob die Felder name , stadt und marken existieren. Eine View, die einen Fehler
liefert (etwa, weil ein Element eines Dokuments nicht vorhanden ist) bricht sofort ab, um
nicht unnötig Ressourcen zu verbrauchen. Mit etwas Fantasie könnte man also type als Ta-
bellennamen einer relationalen Datenbank ansehen. Das Element type ist allerdings kein
Bestandteil von CouchDB, das Feld könnten Sie ebenso „Typ“ oder „Ding“ nennen, solan-
ge es nur durchgehend für alle Dokumente benutzt wird. Enthält eine Datenbank nur eine
Art von Dokumenten, kann auf dieses Element auch ganz verzichtet werden.
Eine Abfrage kann durch die oben erwähnten Parameter beeinflusst werden. Für die Suche
der Autohäuser in einer bestimmten Stadt hilft uns der Parameter key= . Wird bei dem Auf-
ruf dieser Map-Funtion z. B. key=“Berlin“ mitgegeben, so werden nur die Ergebnisse an-
gezeigt, die den Key Berlin haben: http://localhost:5984/autohaus/_design/autohausabfra-
ge/_view/anzahl_pro_stadt?key=“Berlin“
{"Berlin","Meier"}
{"Berlin","Schulze"}
Fassen wir noch einmal zusammen: CouchDB spricht „REST“ über HTTP, Dokumente
können angelegt, geändert und gelöscht werden. Auch Designdokumente werden wie Da-
tendokumente angelegt, haben jedoch eine feste Vorgabe der ID und der Felder, die das
Dokument beinhaltet. Designdokumente beinhalten Abfragen, die auf alle Datendokumen-
te angewandt werden und anhand von JavaScript-Funktionen Key-Value-Paare ausgeben.
Jetzt ist es an der Zeit, uns das Zusammenspiel mit PHP anzuschauen.
POP: Plain Old PHP
PHP beinhaltet bereits alles, um mit einer CouchDB zu kommunizieren. Der Grund ist klar,
CouchDB spricht HTTP. Die einfachste On-Board-Lösung ist fsockopen :
$method="GET";
Search WWH ::




Custom Search