2017-07-24 2 views
1

Wenn ich mehrere Dokumente mit einem Array von Tags habe, was ist die effizienteste Möglichkeit, Vorkommen eines Tags zu löschen.Der effizienteste Weg zum Löschen mehrerer Vorkommen von Wert mit CouchDB

Beispiel Dokumente:

"name": "doc1", 
"tags": ["blue", "pink", "red"] 

"name": "doc2", 
"tags": ["brown", "pink", "yellow"] 

Wenn ich jetzt löschen „pink“ von beiden und alle Dokumente wünschen, könnte ich Schleife durch jedes Dokument, und dann die Schleife durch jede Reihe von Tags, Tests für „pink“ . Aber ich versuche herauszufinden, ob es eine effizientere und/oder eingebaute Methode gibt, dies zu tun?

Antwort

0

Sie könnten eine Ansicht erstellen, die jedes Tag ausgibt.

ZB:

function(doc){ 
    for(var tag in docs.tags) 
    emit(tag); 
} 

Dann können Sie die Ansicht der Abfrage durch den Tag Angabe Sie den Schlüssel löschen möchten. ZB: ?key="pink"

Dann müssen Sie alle zurückgegebenen Dokumente iterieren, rosa von den Tags entfernen und alle aktualisieren.

+0

Danke, das ist irgendwie, was ich schon habe ... frage mich nur, ob es einen besseren/schnelleren Weg gibt? Vielleicht nicht ich denke .. – user4893295

+0

Nicht wirklich. Es gibt keine Massenaktualisierung wie in der SQL-Datenbank. –

Verwandte Themen