2016-07-22 8 views
1

Es gibt einige spezielle Design-Dokument Funktionen, wie updates und validate_doc_update neben views und lists Funktionen; wo unsere Funktionen bei bestimmten Ereignissen ausgeführt werden, indem pro Aufruf ein einziges Dokument ausgegeben wird.Wie kann ich ein anderes Dokument in einer Designdokumentfunktion erhalten?

Ich frage mich, ob wir ein anderes Dokument innerhalb einer einzigen update Funktion, wie so holen kann:

updates: { 

    "hello" : "function(doc, req) { 
     if (doc.type === 'example') { 
     otherDoc = fetch(doc.relatedDocId) 
     doc.relatedDocName = otherDoc.name 
     return [doc, 'Hey Hey...'] 
     } 
    }" 

Point ich eine fetch(documentId) wie Funktion verwenden, um möchte einige andere Dokumente zu aktualisieren, die auf den gegenwärtigen Dokumentinformationen .

+0

Ich wollte Ihnen die perfekte Antwort geben, aber ich konnte nicht. Hier ein paar Optionen, an die Sie denken könnten. 1. Clientseitige Logik 2. Verwendung von CommonJS-Modulen 3. Einen benutzerdefinierten Handler (Ihr eigenes Plugin) haben –

+0

beste Option könnte ein benutzerdefinierter Handler sein (aber ich würde 3rd Party DBaaS Funktionalität verlieren). Zweitens kann ich eine clientseitige Logik implementieren. Ich kann mir nicht vorstellen, wie CommonJS-Module in dieses Problem passen. – ceremcem

Antwort

0

Wenn ein Dokument aktualisiert wird, gibt es in CouchDB keine Möglichkeit, ein zweites, verwandtes Dokument automatisch zu aktualisieren. Möglicherweise möchten Sie einen Mitarbeiter implementieren, der auf die hört, und solche Aktualisierungen dort durchführen.

+0

Wenn dies der Fall ist, sollte ich eine clientseitige Logik mit "db/_bulk_docs" implementieren, da der Arbeitsprozess möglicherweise fehlschlägt, was plötzlich dazu führen würde, dass die Datenbank (daher die Anwendung) in einen inkonsistenten Zustand gerät. – ceremcem

Verwandte Themen