首页 > 解决方案 > 如何使用边缘标签在 Gremlin 中执行遍历

问题描述

我有一个简单的问题,但我仍在努力掌握 gremlin 语言和图形数据库。我在图中有以下项目。这只是一条路径,但我想找到附加到具有属性“ABC”的边缘的节点。

例如,这是我的图表:

a = g.addV("building").property("name", "A").next()
b = g.addV("building").property("name", "B").next()
c = g.addV("building").property("name", "C").next()
d = g.addV("building").property("name", "D").next()
e = g.addV("building").property("name", "E").next()

g.addE("path").from(a).to(b).property("ident", "ABC")
g.addE("path").from(b).to(c).property("ident", "ABC")
g.addE("path").from(c).to(d).property("ident", "ABC")
g.addE("path").from(d).to(e).property("ident", "ABC")

g.addE("path").from(a).to(b).property("ident", "XYZ")
g.addE("path").from(b).to(c).property("ident", "XYZ")
g.addE("path").from(c).to(d).property("ident", "XYZ")
g.addE("path").from(d).to(e).property("ident", "XYZ")

我想要做的是找到边缘.has("path", "ident", "ABC")。我可以做到这一点,但我试图弄清楚如何接受并最终显示图表。我试图弄清楚如何获得:

A->path->B->path->C->path->D->path->E

再次提前感谢您,您不必解决问题,只需帮助我指出正确的方向。

标签: graphgremlintinkerpop3

解决方案


这可以通过使用以下步骤结合使用repeat()边缘属性过滤的步骤来完成:identhas()

g.V().has('building', 'name', 'A').repeat(outE('path').has('ident', 'ABC').inV()).until(outE('path').count().is(0)).path()


推荐阅读