如何使用 Until 和 In 递归搜索 Gremlin TinkerPop 树
How to recursively search UP a Gremlin TinkerPop tree using Until and In
我在 Gremlin 服务器上有一个 TinkerPop 图表,我正在尝试从一片叶子递归搜索一棵树,直到找到根。
给定一棵看起来像这样的树
我可以通过此查询已知货件中的物品和包裹。
g.V("MyShipment").repeat(out().not(hasLabel("contracted", "contains")).simplePath()).until(outE().count().is(0)).path()
但是尝试反向操作失败
g.V("MyItem2").repeat(in().not(hasLabel("contracted", "contains")).simplePath()).until(inE().count().is(0)).path()
org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed: Script61.groovy: 1: unexpected token: in @ line 1,
column 23. g.V("MyItem2").repeat(in().not(hasLabel("contracted","contains")).simplePath()).until(inE().count().is(0)).path()
^
1 error
有没有通过 In Edges 递归查找树的方法?
in
关键字是 Groovy 中的保留字。尝试使用
g.V("MyItem2").
repeat(__.in().not(hasLabel("contracted","contains")).simplePath()).
until(inE().count().is(0)).
path()
请注意,您也可以将查询写为
g.V("MyItem2").
repeat(__.in().not(hasLabel("contracted","contains")).simplePath()).
until(__.not(__.in())).
path()
我在 Gremlin 服务器上有一个 TinkerPop 图表,我正在尝试从一片叶子递归搜索一棵树,直到找到根。
给定一棵看起来像这样的树
g.V("MyShipment").repeat(out().not(hasLabel("contracted", "contains")).simplePath()).until(outE().count().is(0)).path()
但是尝试反向操作失败
g.V("MyItem2").repeat(in().not(hasLabel("contracted", "contains")).simplePath()).until(inE().count().is(0)).path()
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script61.groovy: 1: unexpected token: in @ line 1, column 23. g.V("MyItem2").repeat(in().not(hasLabel("contracted","contains")).simplePath()).until(inE().count().is(0)).path() ^
1 error
有没有通过 In Edges 递归查找树的方法?
in
关键字是 Groovy 中的保留字。尝试使用
g.V("MyItem2").
repeat(__.in().not(hasLabel("contracted","contains")).simplePath()).
until(inE().count().is(0)).
path()
请注意,您也可以将查询写为
g.V("MyItem2").
repeat(__.in().not(hasLabel("contracted","contains")).simplePath()).
until(__.not(__.in())).
path()