Design Dokument

Dies sind spezielle Dokumente.

http://127.0.0.1:5984/couchtest/_design/ddexample
{
    "_id":"_design/ddexample",
    "_rev":"1-8da8273d9594f007b954a58c74a8335a",
    "language":"javascript",
    "views":{"ddview":{"map":"function(doc) {\n  emit(null, doc);\n}"}}
}

Das gespeicherte View abfragen. Views nutzen Map Reduce um eine Liste von Dokumenten zu erstellen.

http://127.0.0.1:5984/couchtest/_design/ddexample/_view/ddview

In der Map-Phase werden zu dem einzelnen Dokument ein oder mehrere Key/Value-Paare gebildet. Diese Paare werden dann in einer Liste zwischengespeichert, der sogenannten Map.
Mit emit übergibt man Werte an die Reduce Funktion.

function (doc) {
    emit(null, doc);
}

Will man ein bestimmtes Feld im Dokument angezeigt haben, übergibt man das Feld einfach, Selektionen sind auch möglich.

function (doc) {
    if(doc.name != null) {
        emit(doc.name, doc);
    }
}

Die Reduce-Phase kann erst gestartet werden wenn alle Map-Funktionen beendet wurden. In der Reduce-Phase werden die in der Map gespeicherten Key/Value-Paare zu einem Ergebnis verarbeitet.

Ein CouchDB-View besteht aus zwei Komponenten, der Map- und der Reduce-Funktion, wobei die Reduce-Funktion optional ist. Die Funktionen werden gespeichert.

Comments are closed.