Brauchen Sie eine Erklärung der couchdb Reduce-Funktion

9

Von Ссылка

Die couchdb reduce Funktion ist definiert als

%Vor%
  • Schlüssel ist ein Array, dessen Elemente sind Arrays der Form [key, id]
  • Werte werden ein Array der Werte sein emittiert für die jeweiligen Elemente in Schlüsseln
  • d. reduzieren ([[key1, id1], [key2, id2], [key3, id3]], [value1, value2, value3], false)

Ich habe Probleme zu verstehen, wann / warum das Schlüsselfeld verschiedene Schlüsselwerte enthalten würde. Wenn das Schlüsselfeld unterschiedliche Schlüsselwerte enthält, wie würde ich damit umgehen?

Nehmen Sie als Beispiel an, dass meine Datenbank Bewegungen zwischen Konten des Formulars enthält.

%Vor%

Ich möchte eine Ansicht, die den Kontostand angibt.

Meine Kartenfunktion tut:

%Vor%

Meine reduzierende Funktion tut:

  

gibt die Summe (Werte) zurück;

Ich scheine die erwarteten Ergebnisse zu erhalten, aber ich kann das nicht mit der Möglichkeit in Einklang bringen, dass meine reduce-Funktion andere Schlüsselwerte bekommt.

Soll meine Reduzierungsfunktion zuerst Schlüsselwerte gruppieren? Welche Art von Ergebnis würde ich in diesem Fall zurückgeben?

    
Alan 03.05.2010, 18:03
quelle

1 Antwort

3

Standardmäßig "gruppiert" Futon Ihre Ergebnisse, was bedeutet, dass Sie eine neue Reduktion pro Schlüssel erhalten - in Ihrem Fall ein Konto. Die Gruppenfunktion ist genau für diese Situation.

Über die RAW-HTTP-API erhalten Sie eine Gesamtreduktion für alle Konten, was wahrscheinlich nicht sinnvoll ist. Denken Sie also daran, in Ihrer eigenen Anwendung group = true zu verwenden, um sicherzustellen, dass Sie Zusammenfassungen pro Konto erhalten.

    
JasonSmith 04.05.2010 09:21
quelle

Tags und Links