Database Reference
In-Depth Information
Das Geheimnis dieser Ausgabe (und aller Views) ist die emit -Funktion (die
genau so funktioniert wie die MongoDB-Funktion gleichen Namens). emit
verlangt zwei Argumente: den Schlüssel und den Wert. Eine gegebene map-
Funktion kann emit für ein gegebenes Dokument einmal, mehrmals oder
auch gar nicht aufrufen. Im obigen Beispiel emittiert die map-Funktion das
Schlüssel/Wert-Paar null / doc . Wie in der Ausgabetabelle zu sehen, ist der
Schlüssel tatsächlich null und der Wert entspricht dem Objekt, das wir am
ersten Tag gesehen haben, als wir es direkt über cURL angefordert haben.
Um einen Mapper zu entwickeln, der das Gleiche macht wie _ all _ docs ,müs-
sen wir aber etwas anderes emittieren. Erinnern Sie sich daran, dass
_ all _ docs das _ id -Feld des Dokuments als Schlüssel ausgibt und ein ein-
faches Objekt, das nur das _ rev -Feld enthält, als Wert. Dementsprechend
ändern wir den Code unserer map-Funktion wie folgt ab und klicken auf
Run.
function(doc) {
emit(doc. _ id, { rev: doc. _ rev });
}
Die Ausgabetabelle sollte nun wie folgt aussehen und die gleichen Schlüs-
sel/Wert-Paare enthalten, die wir vorhin bei _ all _ docs gesehen haben:
Schlüssel
Wert
"74c7a8d2a8548c8b97da748f43000ac4"
{rev: "4-93a101178ba65f61ed39e60d70c9fd97"}
Beachten Sie, dass wir nicht mit Futon arbeiten müssen, um temporäre
Views auszuführen. Sie können auch einen POST -Request an den _ temp _ view -
Handler senden. In diesem Fall übergeben Sie Ihre map-Funktion als JSON-
Objekt im Request-Body.
$ curl -X POST \
http://localhost:5984/music/ _ temp _ view \
-H "Content-Type: application/json" \
-d '{"map":"function(doc){emit(doc. _ id,{rev:doc. _ rev});}"}'
{
"total _ rows":1,
"offset":0,
"rows":[{
"id":"74c7a8d2a8548c8b97da748f43000ac4",
"key":"74c7a8d2a8548c8b97da748f43000ac4",
"value":{
"rev":"4-93a101178ba65f61ed39e60d70c9fd97"
}
}]
}
 
Search WWH ::




Custom Search