从原点发现一种类型的所有顶点

问题描述 投票:0回答:1

我正在使用图形数据库对权限系统进行建模。这是一个示例方案:

graph image for example

用户u1具有直接权限,并且在具有权限并扩展另一个组的组g1中。

用户也manage使用系统s1,并且可以将与s1相关的权限授予其他用户。

基本上,我需要做的是获得我的u1的所有权限。我怀疑这是一个简单的查询,但是我对gremlin感到很困难。

我尝试过repeat()out()emit()path()等的组合,但是找不到我需要的东西。我尝试过的所有操作返回的节点多于所需节点(例如,权限路径中的组节点,或与系统相关的权限),或者节点数少(例如未达到G2

所以总结一下,我需要的是:

gremlin> g.V('u1').__misteriousQueryThatShouldntBeThatHard()
==> v[p1]
==> v[p2]
==> v[p3]
==> v[p4]

感谢任何帮助。

graph-databases gremlin amazon-neptune
1个回答
0
投票

如果上一个问题中Kfir回答的唯一问题是将路径限制为某些边缘标签,则可以尝试:

g.V('u1')
    .repeat(out('is-in', 'extends', 'has-permission').simplePath())
    .until(hasLabel('Permission'))
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.