Gremlin 小精灵遍历查找与特定顶点无关的所有顶点

Gremlin 小精灵遍历查找与特定顶点无关的所有顶点,gremlin,orientdb,graph-traversal,Gremlin,Orientdb,Graph Traversal,这是一个场景:我在orient db中有许多用户。 我想检索不是某个特定用户的朋友的所有用户,其中朋友是边缘。 我需要一个小精灵的命令。 有人能帮我吗? 非常感谢。 Diego因为你想找到与某个特定用户不是朋友的所有用户,我不确定是否有一种非常有效的方法来实现这一点。我用玩具图来演示,但我假设所有的顶点都是用户,所有的边都是朋友边。我会这样做: gremlin> g = TinkerGraphFactory.createTinkerGraph() ==>tinkergraph[ver

这是一个场景:我在orient db中有许多用户。 我想检索不是某个特定用户的朋友的所有用户,其中朋友是边缘。 我需要一个小精灵的命令。 有人能帮我吗? 非常感谢。
Diego

因为你想找到与某个特定用户不是朋友的所有用户,我不确定是否有一种非常有效的方法来实现这一点。我用玩具图来演示,但我假设所有的顶点都是用户,所有的边都是朋友边。我会这样做:

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> l=[g.v(1)] as Set;g.v(1).out.fill(l)                 
==>v[1]
==>v[2]
==>v[4]
==>v[3]
因此,将特定用户以及他们的朋友放入列表
l

gremlin> g.V.except(l)                                        
==>v[6]
==>v[5]
然后找到其他人,除了那些人。这将是每个不是特定用户的朋友或该特定用户本人的人。我并不特别喜欢你必须迭代
g.V
,因为它涉及到对所有朋友的线性扫描,但我想不出任何更简单的方法来找到不在初始集合中的所有人