使用Gremlin - Tinkerpop3获取具有所有属性的顶点标签的地图

rad*_*er5 1 gremlin tinkerpop3

我想回复一些类似的东西

{
  "label1" : ["prop1","prop2"],
  "label2" : ["prop3","prop4"],
  "label2" : ["prop1","prop3"]
}
Run Code Online (Sandbox Code Playgroud)

等等,其中标签[N]是顶点标签值,道具数组是这些顶点的属性.

我可以得到一个标签列表,我可以得到一个属性列表,但我不能将它们组合在一个对象中.我可能会做两个查询并最终合并两个数组,但类似于

g.V().valueMap().select(keys).dedup();
Run Code Online (Sandbox Code Playgroud)

只获取有任何属性的属性,所以如果顶点类型没有任何属性,则返回的数组与执行的数组大小不同

g.V().label().dedup();
Run Code Online (Sandbox Code Playgroud)

这是使用gremlin语法(TP3)谢谢

ste*_*tte 7

我假设你正试图获得一种模式定义.请注意,这将是一个相当昂贵的遍历,因为您必须迭代所有顶点才能执行此操作:

gremlin> g.V().
......1>   group().
......2>     by(label).
......3>     by(properties().
......4>        label().
......5>        dedup().
......6>        fold())
==>[software:[name,lang],person:[name,age]]
Run Code Online (Sandbox Code Playgroud)