Mit CouchDB Ansichten, kann nur die Taste die Sortierreihenfolge für den Index bestimmen. Der Wert berücksichtigt keine Sortierung/Gruppierung.
Wenn Sie also eine Ansicht haben möchten, die Posts von einem Benutzer in der Reihenfolge der Erstellung (aufsteigend oder absteigend) ausgibt, geben Sie ein Array als eine Art "zusammengesetzten Schlüssel" aus. Ich würde empfehlen, die Guide to Views in der CouchDB Dokumentation zu lesen.
Für Ihr Beispiel würde ich eine Karte Funktion wie folgt machen:
function (doc) {
if (doc.type === 'post') {
emit([ doc.username, doc.timestamp ]);
}
}
Dann Sie die Beiträge für einen bestimmten Benutzer mit einer Abfrage wie bekommen:
?start_key=["username"]&end_key=["username","\ufff0"]
Welche finden die Posts für den angegebenen "Benutzernamen", geordnet nach dem Zeitstempel aufsteigend. Um die Reihenfolge umzukehren, verwenden Sie die folgende Abfrage statt:
?start_key=["username","\ufff0"]&end_key=["username"]&descending=true
Beachten Sie, dass die Werte für start_key
und end_key
vertauscht, und descending=true
wurde hinzugefügt.
Wie bereits erwähnt, lesen Sie sich die Dokumentation durch, da dies eine hervorragende Möglichkeit ist, den besten Überblick über CouchDB-Ansichten zu erhalten.