Database Reference
In-Depth Information
==>Tom
==>Patty
==>Patty
Die Schleife hat korrekt funktioniert und Tom und Patty gefunden. Doch jetzt
taucht Patty zweimal auf. Das liegt daran, dass Patty einmal als Freundin von
Alice erkannt wird und ein weiteres Mal als Freundin von Tom. Wir brauchen
also eine Möglichkeit, doppelt vorkommende Objekte herauszufiltern, was
der Filter dedup() ("de-duplicate") macht.
alice.bothE('friends').bothV.except([alice]).loop(3){
it.loops <= 2
}.dedup.name
==>Tom
==>Patty
Wenn Sie wissen wollen, welcher Pfad verfolgt wird, um an diese Werte zu
gelangen, können Sie den friend->friend-Pfad über die paths -Transformation
verfolgen.
alice.bothE('friends').bothV.except([alice]).loop(3){
it.loops <= 2
}.dedup.name.paths
==> [v[7], e[12][9-friends->7], v[9], e[11][9-friends->8], v[8], Tom]
==> [v[7], e[12][9-friends->7], v[9], e[11][9-friends->8], v[9], Patty]
Bei allen Traversierungen haben wir uns bisher nur vorwärts durch einen
Graphen bewegt. Manchmal muss man aber zwei Schritte vor gehen und
dann wieder zwei Schritte zurück. Beginnend beim Alice-Knoten gehen wir
nachfolgend zwei Schritte vor und dann wieder zwei Schritte zurück, was uns
zum Alice-Knoten zurückbringt.
gremlin> alice.outE.inV.back(2).name
==> Alice
Der letzte gängige Schritt, den wir untersuchen wollen, ist groupCount() .Er
geht die Knoten durch, zählt alle doppelt vorkommenden Werte und hält sie
in einer Map fest.
Im folgenden Beispiel werden die name -Properties aller Knoten im Graph ge-
sammelt und gezählt:
gremlin> name _ map = [:]
gremlin> g.V.name.groupCount( name _ map )
gremlin> name _ map
Search WWH ::




Custom Search