Gremlin 查询以按相同标签列出所有边

Gremlin query to list out all the edges by the same label

我尝试了与我的请求相匹配的不同查询,但无法找到它。抱歉,这是重复的。 我有两个顶点 Vertex1Vertex2。有一条边从 Vertex1 连接到 Vertex2,标签 relation 属性 {name: "Test1"}。类似地,还有一条从 Vertex1 连接到 Vertex2 的边,其标签与 relation 相同,但属性与 {name: "Test2"} 相同。附图显示了顶点及其关系。

如何列出所有关系?

Query1: g.V('Vertex1').outE().hasLabel('relation') => 仅列出第一个关系,即与属性 {name: "Test1"} 的关系。

Query2: g.V('Vertex1').outE().as("c").select("c").by(valueMap()).toList() => 列出所有关系,包括标签为“relation”的边。

如果我稍微调整一下以包含要查询的标签名称 g.V('Vertex1').outE('relation').as("c").select("c").by(valueMap()).toList() => 然后再次只获得第一个边缘。 我正在尝试获取带有标签“关系”的边的属性及其属性,例如

{id=Edge1-ID1, label=relation, name=Test1}

{id=Edge1-ID2, label=relation, name=Test2}

我不确定哪里出了问题,但根据 Gremlin 语法,您的第一次尝试基本上是正确的:

gremlin> g.addV().property(id,'Vertex1').as('v1').
......1>   addV().property(id,'Vertex2').as('v2').
......2>   addE('relation').from('v1').to('v2').property('name','Test1').
......3>   addE('relation').from('v1').to('v2').property('name','Test2').iterate()
gremlin> g.V('Vertex1').outE('relation')
==>e[0][Vertex1-relation->Vertex2]
==>e[1][Vertex1-relation->Vertex2]
gremlin> g.V('Vertex1').outE('relation').values('name')
==>Test1
==>Test2

我唯一的想法是,也许你还没有完全 iterating your traversal?您在其他示例中做了 toList(),但不是第一个。