Gremlin循环查询返回邻居列表'边数和ids

时间:2015-07-10 12:32:41

标签: graph-databases gremlin

我试图编写一个Gremlin循环,返回类似于以下内容的顶点:

nodeId:1,edgeCount:2
nodeId:2,edgeCount:1
nodeId:3,edgeCount:3
nodeId:4,edgeCount:4

换句话说,它的邻居列表' id以及每个邻居的边缘计数。我最接近的是(对于顶点' svpol'):

g.v('svpol').in.loop(1){it.loops<2}.path{it.id}{g.v(it.id).bothE.count()}

产生以下输出:

==>[svpol, 2]
==>[svpol, 4]
==>[svpol, 4]
==>[svpol, 6]

我已经确认边数是正确的,但不是&#39; svpol&#39;我希望它能产生邻居的id。如果可能,它需要在单个查询中完成。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

不确定我是否理解你的问题,但你写道:

  

其邻居的列表&#39; id以及每个邻居的边缘计数

可以使用transform(在gremlin 2中)使用以下简单查询获得这样的列表列表:

<h2>Add New Order</h2>

{{ message }}

使用l = g.v(id).both.transform{[it.id,it.bothE.count()]}.toList() id=1,查询将生成:

[3, 3]
[2, 1]
[4, 3]

我不明白为什么要使用loop

答案 1 :(得分:1)

我猜Faber很接近,你正在寻找的是:

g.v('svpol').both().path() {it} {[it.id, it.bothE().count()]}