1

我的顶点有两个标签“用户”和“组”之一,边被标记为“包含”。“组”顶点可能指向“用户”顶点或其他“组”顶点。我使用以下查询来查找从组顶点开始的“用户”顶点。如果“组”顶点指向另一个“组”顶点,它会遍历该子“组”顶点以查找“用户”顶点。

g.V().hasLabel('Group').has('AccountName','oem').repeat(out('contains')).until(hasLabel('User'))

现在我需要遍历不指向任何其他顶点的“组”顶点。在阅读了其他一些帖子后,我尝试了以下内容,但我得到了“Gremlin 查询编译错误:'P.not' 和 '__.not' 之间的歧义” 表达类似内容的正确方法是什么?

g.V().hasLabel('Group').has('AccountName','oem').repeat(out('contains')).until(not(outE())) <<== Error
4

1 回答 1

2

代替使用not(outE())您可以outE().count().is(0)用作表达此查询的另一种方式。这将消除显式使用 P 类或匿名遍历(双下划线__)所需的歧义not()

于 2020-03-27T12:28:47.913 回答