Paths
Path Filters
Steps | Meaning |
---|---|
|
keep simple, non-cyclic paths (no element must appear twice or more in the current path) |
|
keep cyclic paths (at least one element must appear twice or more in the current path) |
Examples
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V(1).out().in().simplePath().path()
==>[v[1],v[3],v[4]]
==>[v[1],v[3],v[6]]
gremlin> g.V(1).out().in().cyclicPath().path()
==>[v[1],v[3],v[1]]
==>[v[1],v[2],v[1]]
==>[v[1],v[4],v[1]]
Variables
Path-local Variables
Steps | Meaning |
---|---|
|
assign or compute a path-local variable |
|
emit the current sack value |
|
select values from previously labeled steps |
Examples
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V(1).
......1> sack(assign).
......2> by("age").
......3> out("knows").
......4> sack(sum).
......5> by("age").
......6> sack().
......7> path().
......8> by("age").by("age").by()
==>[29,27,56]
==>[29,32,61]
gremlin> g.V(1).as("a").out("knows").as("a").
......1> select(last, "a")
==>v[2]
==>v[4]
gremlin> g.V(1).as("a").out("knows").as("a").
......1> select(first, "a")
==>v[1]
==>v[1]
gremlin> g.V(1).as("a").out("knows").as("a").
......1> select(all, "a")
==>[v[1],v[2]]
==>[v[1],v[4]]
Pattern Matching
Steps | Meaning |
---|---|
|
attempts to find matches for the provided patterns in the underlying graph |
|
puts contraints on labeled steps |
Examples
gremlin> g = TinkerFactory.createGratefulDead().traversal()
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]
gremlin> g.V().match(
......1> __.as("a").has("name", "Garcia"),
......2> __.as("a").in("writtenBy").as("b"),
......3> __.as("a").in("sungBy").as("b")).
......4> select("b").values("name")
==>CREAM PUFF WAR
==>CRYPTICAL ENVELOPMENT
gremlin> g.V().match(
......1> __.as("a").in("writtenBy").as("b"),
......2> __.as("a").in("sungBy").as("b")).
......3> where(__.as("a").has("name", "Garcia")).
......4> select("b").values("name")
==>CREAM PUFF WAR
==>CRYPTICAL ENVELOPMENT
gremlin> g.V().has("artist","name","Garcia").as("a").
......1> in("writtenBy").as("b").
......2> where(__.as("a").in("sungBy").as("b")).
......3> values("name")
==>CREAM PUFF WAR
==>CRYPTICAL ENVELOPMENT