我的图表看起来像这样
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(...))....
也许这些选项会为您提供一些灵感。