Gremlin 查询以按相同标签列出所有边
Gremlin query to list out all the edges by the same label
我尝试了与我的请求相匹配的不同查询,但无法找到它。抱歉,这是重复的。
我有两个顶点 Vertex1
和 Vertex2
。有一条边从 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()
,但不是第一个。
我尝试了与我的请求相匹配的不同查询,但无法找到它。抱歉,这是重复的。
我有两个顶点 Vertex1
和 Vertex2
。有一条边从 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()
,但不是第一个。