Ich habe einen Baum mit vielen Ebenen, wo Blattknoten die Eigenschaft "count" haben können. Ich möchte die Gesamtzählung für jeden Unterbaum berechnen und diese Werte im Wurzelknoten jedes Unterbaums zwischenspeichern. Ist das im Gremlin möglich?
Du könntest es mit sideEffect
machen - das ist ziemlich einfach. Wir haben einen einfachen Baum mit:
Und dann ist hier die Berechnung über jeden Teilbaum innerhalb des gesamten Baums:
%Vor%Diese Abfrage bricht so zusammen. Zuerst dieses Stück:
%Vor% erhält irgendeinen Teil des Baums, der kein Blattknoten ist (d. h. mindestens eine ausgehende Kante sollte kein Blatt sein). Zweitens verwenden wir sideEffect
, um jede Wurzel eines Teilbaums zu verarbeiten:
speichert die Summe der "count" -Eigenschaft für jeden Teilbaum in einer Variablen namens c
. Mit dem elvis-Operator ( ?:
) gibt es ein bisschen groovy goodness, um nach Scheitelpunkten ohne "count" -Eigenschaft zu suchen und in diesen Fällen eine Null zurückzugeben. Nachdem Sie den Baum durchlaufen haben, um c
zu berechnen, können Sie einfach den Wert von c
in Ihrem Wurzelknoten des Teilbaums speichern über: