我的图看起来像这样
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的新手,已经检查了文档,但找不到特定的文档。
答案 0 :(得分:1)
有很多选择,但是我想答案取决于您最终想要实现的目标。您可以简单地将结果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(...))....
:
>Get-SqlInstance -ServerInstance 'DEVSQL02'
Get-SqlInstance : Failed to connect to server DEVSQL02.
At line:1 char:1
+ Get-SqlInstance -ServerInstance 'DEVSQL02'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (DEVSQL02:String) [Get-SqlInstance], ConnectionFailureException
+ FullyQualifiedErrorId : ConnectionToServerFailed,Microsoft.SqlServer.Management.PowerShell.GetSqlInstanceCommand
也许这些选项会为您提供一些启发。