2017-03-24 18 views
0

Ich möchte eine Ansicht verwenden, um eine Zusammenfassung größerer Dokumente zu berechnen. Jedes von der Ansicht erzeugte Dokument entspricht einem Quelldokument. Die Ausgabe der Ansicht wird zum Auffüllen der Tabelle in der Benutzeroberfläche verwendet. Wenn Sie auf eine Zeile der Tabelle klicken, wird das größere Dokument geöffnet. Wenn im zugrunde liegenden Dokument ein Konflikt auftritt, möchte ich ihn in der Tabellenzeile anzeigen, damit der Benutzer das gesamte Dokument öffnen und den Konflikt lösen kann. Wie kann ich effizient die Konflikte erhalten, die in der Tabelle angezeigt werden? (Alle Konflikte für die zugrunde liegenden Dokumente)couchdb zeige zugrundeliegende Dokumentkonflikte in Ansichten

Dank

Antwort

0

Sie können die Konflikte Option in den Ansichtsparameter verwenden, zusammen mit include_docs. Sie können more info about view params in the CouchDB docs finden.

z. http://localhost:5984/mydatabase/_design/documents/_view/posts?conflicts=true&include_docs=true fügt jedem Dokument, das einen Konflikt hat, die Eigenschaft _conflicts hinzu.

Pro-Tipp: In diesem Fall müssen Sie nicht das gesamte Dokument in der Ansicht selbst ausgeben, da der Parameter include_docs das gesamte Dokument trotzdem zurückgibt.

Eine andere Möglichkeit besteht darin, die Eigenschaft _conflicts selbst zu emittieren. Sie können das folgendermaßen tun:

function (doc) { 
    if (doc._conflicts) emit(doc._id, doc._conflicts); 
} 

Dies ist eine praktische Ansicht zum Suchen nur Dokumente mit Konflikten.