您的图表似乎并未表明双向边缘是可能的,因此我将牢记这一假设.这是一个简单的示例图-请考虑包括一个有关未来问题的图,因为它比图片和文字描述容易得多,对于那些阅读您的问题的人来说,理解并开始编写Gremlin遍历可以帮助您:
g.addV().property(id,'a').as('a').
addV().property(id,'b').as('b').
addV().property(id,'c').as('c').
addE('knows').from('a').to('b').
addE('knows').from('a').to('b').
addE('knows').from('a').to('c').iterate()
因此,您可以看到顶点“ a”具有到“ b”的两个出射边和到“ c”的一个出射边,因此我们应该得到“ a b”顶点对.一种实现方法是:
gremlin> g.V().as('out').out().as('in').
......1> select('out','in').
......2> groupCount().
......3> unfold().
......4> filter(select(values).is(gt(1))).
......5> select(keys)
==>[out:v[a],in:v[b]]
上面的遍历使用groupCount()来计算“出”和“入”标记的顶点出现的次数(即它们之间的边数)