我试图编写一个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。如果可能,它需要在单个查询中完成。
有什么想法吗?
答案 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()]}