Database Reference
In-Depth Information
Alben nach Namen inden
Einen Künstler über den Namen zu finden, ist nützlich, aber wir können noch
mehr. Diesmal wollen wir einen View entwickeln, der uns Alben finden lässt.
Das ist das erste Beispiel, bei dem die map-Funktion mehr als ein Ergebnis
pro Dokument emittieren kann.
Wechseln Sie wieder auf die Temporary-View-Seite und geben Sie den folgen-
den Mapper ein:
couchdb/albums_by_name_mapper.js
function (doc) {
if ( 'name' in doc && 'albums' in doc) {
doc.albums.forEach( function (album){
var
key = album.title || album.name,
value = { by: doc.name, album: album };
emit(key, value);
});
}
}
Die Funktion überprüft, ob das aktuelle Dokument ein name -undein albums -
Feld enthält. Ist das der Fall, emittiert sie ein Schlüssel/Wert-Paar für jedes
Album, bei dem der Schlüssel der Titel oder Name des Albums ist und der
Wert ein zusammengesetztes Objekt mit dem Namen des Künstlers und dem
ursprünglichen Album-Objekt. Die dabei erzeugte Tabelle sieht etwa so aus:
Schlüssel
Wert
"Abbey Road"
{by: "The Beatles", album:
{title: "Abbey Road", year: 1969}}
"Help!"
{by: "The Beatles", album:
{title: "Help!", year: 1965}}
"Sgt. Pepper's
Lonely Hearts
Club Band"
{by: "The Beatles", album:
{title: "Sgt. Pepper's Lonely Hearts Club Band",
year: 1967}}
Genau wie bei unserem Künstler-nach-Name-View klicken wir den Save-
As...-Button. Diesmal nennen wir das Design-Dokument albums und den
View by_name . Wir klicken wieder Save an, um die Änderung zu speichern.
Nun wollen wir die Dokumente abfragen.
 
Search WWH ::




Custom Search