如何在 Gremlin 中使用边标签进行遍历
How to perform traversal in Gremlin With Edge Label
我有一个有点简单的问题,但我仍在尝试总体上掌握 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
再次提前致谢,您不必解决问题,只需帮助我指出正确的方向即可。
这可以通过 repeat()
步骤与边缘过滤相结合来完成 属性 ident
使用 has()
步骤,如下所示:
g.V().has('building', 'name', 'A').repeat(outE('path').has('ident', 'ABC').inV()).until(outE('path').count().is(0)).path()
我有一个有点简单的问题,但我仍在尝试总体上掌握 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
再次提前致谢,您不必解决问题,只需帮助我指出正确的方向即可。
这可以通过 repeat()
步骤与边缘过滤相结合来完成 属性 ident
使用 has()
步骤,如下所示:
g.V().has('building', 'name', 'A').repeat(outE('path').has('ident', 'ABC').inV()).until(outE('path').count().is(0)).path()