graph - 如何使用边缘标签在 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
再次提前感谢您,您不必解决问题,只需帮助我指出正确的方向。
解决方案
这可以通过使用以下步骤结合使用repeat()
边缘属性过滤的步骤来完成:ident
has()
g.V().has('building', 'name', 'A').repeat(outE('path').has('ident', 'ABC').inV()).until(outE('path').count().is(0)).path()
推荐阅读
- python - 如何在 Pandas 中合并包含数字数据的多列,但忽略空单元格
- text - 各种压缩软件程序的有趣行为
- python - 如何在 python 上的 openpyxl 的帮助下在现有的 xlsx 文件上写入文本?
- android - React Native 应用程序中的通知声音设置对话框,例如 WhatsApp
- c# - Visual Studio 2019 中的“项目位置”设置存储在哪里?
- python - 无法从 python 计算器获得正确的输出
- automation - ansible 角色的常见用例
- python-3.x - 这个循环不会执行它之后的代码
- c++ - 在 c++ 中,将取消引用的后自增指针分配给另一个已取消引用的后自增指针的结果是什么?
- excel - “1004”:该排序引用无效。确保它在您要排序的数据内,并且第一个排序依据框不是相同的或空白的