Database Reference
In-Depth Information
2. Entwickeln Sie einen cURL-Request, der einen zufälligen Künstler zu-
rückliefert.
Tipp: Sie müssen den startkey -Parameter verwenden und können in der
Kommandozeile eine Zufallszahl mit 'ruby -e 'puts rand'' erzeugen .
3. Das Import-Skript fügt diese random -Property auch für jedes Album, jeden
Titel und jeden Tag ein. Entwickeln Sie drei zusätzliche Views im Design-
Dokument _ design/random mit den View-Namen album , track und tag ,
die genauso funktionieren, wie unser artist -View.
6.4 Tag 3: Fortgeschrittene Views, Changes-API und Datenreplikation
An den ersten beiden Tagen haben wir gelernt, wie man einfache CRUD-
Operationen durchführt und mit Views interagiert, um Daten aufzuspüren.
Auf dieser Erfahrung aufbauend wollen wir uns heute Views genauer anse-
hen und den Reduce-Teil der Mapreduce-Gleichung sezieren. Danach werden
wir einige Node.js-Anwendungen in JavaScript entwickeln, um CouchDBs
einmalige Changes-API zu unterstützen. Abschließend diskutieren wir die
Replikation und wie CouchDB mit Konflikten umgeht.
Fortgeschrittene Views mit Reducern entwickeln
Mapreduce-basierte Views sind das Instrument, mit dem Sie sich CouchDBs
Indexierungs- und Aggregations-Fähigkeiten zunutze machen können. Am
zweiten Tag haben all unsere Views nur aus Mappern bestanden. Nun wollen
wir auch Reducer nutzen, um neue Fähigkeiten zu entwickeln, die wir auf die
am zweiten Tag importierten Jamendo-Daten anwenden wollen.
Eine schöne Sache an den Jamendo-Daten ist ihre Tiefe. Künstler haben
Alben, auf denen sich Titel befinden. Titel haben wiederum Attribute, ein-
schließlich Tags. Wir wenden unsere Aufmerksamkeit nun diesen Tags zu
und wollen einen tiefer grabenden View entwickeln, der diese Tags zählt.
Zuerst kehren wir auf die Temporary-View-Seite zurück und geben die fol-
gende map-Funktion ein:
couchdb/tags_by_name_mapper.js
function (doc) {
(doc.albums || []).forEach( function (album){
(album.tracks || []).forEach( function (track){
(track.tags || []).forEach( function (tag){
emit(tag.idstr, 1);
});
});
});
}
 
Search WWH ::




Custom Search