如何从源节点遍历多个不同的关系

  • 本文关键字:关系 遍历 节点 groovy gremlin
  • 更新时间 :
  • 英文 :


我的图表看起来像这样

P1
|
R1
|
Src
/  
R2   R2
/     
C1      C2

我正在尝试提取节点 Src、R2、C2、R1 和 P1,其中 R 表示关系,P,C 分别用于父节点和子节点。

我试过这个:

g.V('src').out('R1', 'R2') // now i want some filters on node and relation depending upon type.

我能够通过从 src 访问关系 R1 然后返回 Src 并访问 R2 和 C2 来做到这一点,但我试图避免重复遍历。

我是 gremlin 的新手,已经检查了文档,但找不到具体内容。

有很多选择,但我想答案取决于你最终想要完成的目标。您可以简单地将结果project()Map,并独立处理每个边缘标签(如果符合您的预期输出):

g.V('src').
project('r1','r2').
by(out('R1').has(...)....fold())
by(out('R2').has(...)....fold())

或者,如果您还没有真正准备好"结果"并且不需要隔离两个流,您可以使用union()

g.V('src').union(out('R1').has(...), out('R2').has(...))....

也许这些选项会为您提供一些灵感。

最新更新