Database Reference
In-Depth Information
Groovy-Code als
Closure
bezeichnet wird. Der gesamte Code zwischen den
geschweiften Klammern definiert die Funktion, die, wenn wahr zurückge-
geben wird, diesen Knoten durchgeht. Das Schlüsselwort
it
innerhalb der
Closure repräsentiert das aktuelle Objekt und wird automatisch befüllt.
gremlin> g.V.filter{it.name=='riesling'}
==> v[2]
Sobald Sie einen Knoten haben, können Sie die ausgehenden Kanten abru-
fen, indem Sie
outE
auf ihn anwenden. Eingehende Kanten können entspre-
chend über
inE
und beide über
bothE()
abgerufen werden.
gremlin> g.V.filter{it.name=='Wine Expert Monthly'}.outE()
==> e[0][1-reported
_
on->0]
Beachten Sie, dass bei Groovy, genau wie bei Ruby, Klammern für Methoden
optional sind, d. h., Sie können
outE
auch einfach so aufrufen:
gremlin> g.V.filter{it.name=='Wine Expert Monthly'}.outE
==> e[0][1-reported
_
on->0]
Von den ausgehenden Kanten können Sie sich zu den eingehenden Knoten
mit
inV
bewegen, d. h. zu dem Knoten, auf den die Kante zeigt. Die Kante
reported
_
on
von Wine Expert zeigt auf den Knoten
Prancing Wolf Ice Wine
2007
,was
outE.inV
auch zurückliefert. Die
name
-Property können Sie dann
überdenKnotenabrufen.
gremlin> g.V.filter{it.name=='Wine Expert Monthly'}.outE.inV.name
==> Prancing Wolf Ice Wine 2007
Der Ausdruck
outE.inV
fragt nach allen Knoten, zu denen die Eingangskno-
ten Kanten besitzen. Die Umkehroperation (alle Knoten, bei denen Kanten
in
die Eingangsknoten laufen) erreichen Sie mit
inE.outV
. Weil diese Operatio-
nen so gängig sind, bietet Gremlin für beide Kürzel an. Der Ausdruck
out
ist
das Kürzel für
outE.inV
und
in
das Kürzel für
inE.outV
.
gremlin> g.V.filter{it.name=='Wine Expert Monthly'}.out.name
==> Prancing Wolf Ice Wine 2007
Ein Weingut stellt mehr als einen Wein her, d. h., wenn wir weitere hinzufügen
wollen, sollten wir das Weingut als verbindenden Knoten einfügen und eine
Kante zum Prancing Wolf herstellen.