如何使用 gremlin 将所有顶点连接到组中至少两个其他顶点?

How to get all vertices connected to at least two other vertices in a group using gremlin?

我是 GraphDB 的新手,所以如果这很简单,请原谅。

我使用 gremlin 在 Azure CosmosDB 中有两组顶点。分组 abgroup a的每个顶点最多可以连接到group b的任何顶点一次。我正在寻找 group b 中的每个顶点,这些顶点至少连接到 group a.

中的两个顶点

所以在这个例子中我想取回顶点[b2, b3]

万一它是相关的:组 b

中通常会有更多的顶点

从图表创建图表,您可以这样做

g.addV('person').property('group','A').property('name','a1').as('a1').
    addV('person').property('group','A').property('name','a2').as('a2').
    addV('person').property('group','A').property('name','a3').as('a3').
    addV('person').property('group','B').property('name','b1').as('b1').
    addV('person').property('group','B').property('name','b2').as('b2').
    addV('person').property('group','B').property('name','b3').as('b3').   
    addV('person').property('group','B').property('name','b4').as('b4').
    addE('knows').from('b3').to('a2').
    addE('knows').from('b3').to('a3').
    addE('knows').from('a2').to('b2').
    addE('knows').from('b2').to('a1').
    addE('knows').from('a1').to('b1').
    addE('knows').from('a3').to('b4').iterate()          

gremlin>   g.V().has('group','B').
......1>         filter(both().has('group','A').count().is(gte(2))).
......2>         values('name')  
==>b2
==>b3     

如果任何顶点有可能有很多连接边,将查询的测试部分更改为可能更有效。

filter(both().has('group','A').limit(2).count().is(2))