Database Reference
In-Depth Information
Die Antwort entspricht dem, was wir von _ all _ docs erwarten. Doch was pas-
siert, wenn wir den Parameter include _ docs=true angeben? Finden wir es
heraus!
$ curl -X POST \
http://localhost:5984/music/ _ temp _ view?include _ docs=true \
-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"
},
"doc":{
" _ id":"74c7a8d2a8548c8b97da748f43000ac4",
" _ rev":"4-93a101178ba65f61ed39e60d70c9fd97",
"name":"The Beatles",
"albums":[...]
}
}]
}
Statt zusätzliche Felder in das value -Objekt zu integrieren, wird diesmal eine
separate Property namens doc in die Zeile eingefügt, die das gesamte Doku-
ment enthält.
Ein eigener View kann jeden beliebigen Wert emittieren, auch null .DieBe-
reitstellung einer separaten doc -Property vermeidet Probleme, die auftreten
könnten, wenn man die Zeilenwerte mit dem Dokument kombiniert. Als
Nächstes wollen wir uns ansehen, wie man einen View speichert, damit
CouchDB die Ergebnisse indexieren kann.
Einen View als Design-Dokument speichern
Führt CouchDB einen temporären View aus, muss es die bereitgestellte map-
Funktion für jedes Dokument in der Datenbank ausführen. Das ist extrem
Ressourcen-intensiv, verbraucht viel Rechenleistung und ist langsam. Sie
sollten temporäre Views nur für Entwicklungszwecke nutzen. Für den Pro-
duktiveinsatz sollten Sie Ihre Views in sog. Design-Dokumenten speichern.
Ein Design-Dokument ist ein reales Dokument innerhalb der Datenbank, ge-
nau wie das eben von uns angelegte Beatles-Dokument. Als solches kann es
in der üblichen Art und Weise in Views erscheinen und auf andere CouchDB-
Server repliziert werden. Um einen temporären View in Futon als Design-Do-
kument zu speichern, klicken Sie den Save As...-Button an und füllen dann
die Design-Document- und View-Name-Felder aus.
Search WWH ::




Custom Search