检索Gremlin中重复顶点的所有ID 问题

检索Gremlin中重复顶点的所有ID 问题,gremlin,gremlin-server,gremlinpython,Gremlin,Gremlin Server,Gremlinpython,我正在运行一个查询,通过name属性查找重复的顶点。我想知道所有对应顶点的ID 此时,只返回where子句中的ID 示例图 下面是一个玩具示例图。有两个顶点具有相同的名称ex ==>tinkergraph[vertices:0 edges:0] gremlin> g = graph.traversal() ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] gremlin> g.addV('

我正在运行一个查询,通过
name
属性查找重复的顶点。我想知道所有对应顶点的ID

此时,只返回where子句中的ID

示例图 下面是一个玩具示例图。有两个顶点具有相同的名称
ex

==>tinkergraph[vertices:0 edges:0]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('X').property('name', 'ex')
==>v[0]
gremlin> g.addV('Y').property('name', 'why')
==>v[2]
gremlin> g.addV('Y').property('name', 'ex')
==>v[4]
gremlin> g.V().elementMap()
==>[id:0,label:X,name:ex]
==>[id:2,label:Y,name:why]
==>[id:4,label:Y,name:ex]
检测重复项 当我找到重复项并获得
elementMap()
时,ID仅用于
where
子句中匹配的顶点

gremlin> g.V().hasLabel('X').as('x').V().hasLabel('Y').as('y').where('x', P.eq('y')).by('name').elementMap()
==>[id:4,label:Y,name:ex]
然而,我希望看到这两个的
id
,分别是
id:0
id:4

我想要一些像:

==>[[id:0,label:X,name:ex], [id:4,label:Y,name:ex]]

实际上,你已经非常接近了

gremlin> g.V().hasLabel('X').as('x').
......1>   V().hasLabel('Y').as('y').
......2>   where(eq('x')).by('name').
......3>   select('x','y').
......4>     by(valueMap().by(unfold()).
                with(WithOptions.tokens)).
......5>   select(values)

==>[[id:0,label:X,name:ex],[id:4,label:Y,name:ex]]