【发布时间】:2020-02-17 08:19:56
【问题描述】:
我使用 Gremlin 查询从选定的顶点“P1”获取所有传出顶点(带有边缘标签“has”)的列表,直到它到达带有特定标签“L3”的顶点:
g.V().has("id”,”P1”).repeat(out(“has”)).until(hasLabel(“L3”)).path().by("id")
正如预期的那样,上面的查询返回了选定顶点和标为“L3”的目标顶点之间的所有中间节点的列表。
但是,当以相反的方向使用相同的查询(将“out”更改为“in”)时,即获取从选定顶点到具有特定标签的目标顶点的所有传入顶点的列表,我得到一个gremlin 立即查询错误。
这里是查询:
g.V().has("id”,”P3”).repeat(in(“has”)).until(hasLabel(“L1”)).path().by("id")
错误如下所示:
Failure in submitting query:
Error: Script compile error: Missing ')'
我在查询中没有看到任何丢失的括号,我对传入或传出顶点所做的查询之间的唯一变化是使用“in”而不是“out”。
在官方 tinkerpop 文档 (https://tinkerpop.apache.org/docs/3.2.9/reference/#_traversal_strategies_2) 中,在遍历策略中,我找不到任何带有 repeat(in()) 的示例,只有 repeat(out())。是否有特殊的查询或方法可以从选定的顶点获取所有传入的顶点,直到到达具有特定标签的顶点?
【问题讨论】:
标签: gremlin