Gremlin 小精灵:如何识别哪些属性属于哪些边

Gremlin 小精灵:如何识别哪些属性属于哪些边,gremlin,Gremlin,我有一个有两个顶点的简单图,ID为“a”和“b” 我已将两条边从“a”指定给“b”,其中每条边都有标签=“foo” [1] gremlin>g.V('a').outE() ==>e[f4b4b71d-ca98-5302-3eb1-7f99a7e74081][a-foo->b] ==>e[98b4b71d-c8c9-4ca2-9fbe-2f58e33d25e4][a-foo->b] 每个边都有一个key=“committed”属性 [2] gremlin>g.E().properties() ==

我有一个有两个顶点的简单图,ID为“a”和“b”

我已将两条边从“a”指定给“b”,其中每条边都有标签=“foo”

[1] gremlin>g.V('a').outE()

==>e[f4b4b71d-ca98-5302-3eb1-7f99a7e74081][a-foo->b]

==>e[98b4b71d-c8c9-4ca2-9fbe-2f58e33d25e4][a-foo->b]

每个边都有一个key=“committed”属性

[2] gremlin>g.E().properties()

==>p[committed->2]

==>p[committed->1]

我的问题:我想像步骤[2]一样枚举边并返回它们各自的属性,但是如何将结果中的边属性匹配回它们各自的边(ID)?我得到的只是属性键值赋值;与边缘id无关的内容

谢谢


Joel Stevick

您应该避免返回顶点和边等图形元素,而是将结果转换为所需的特定形式。你可以用很多方法来做到这一点。在这种情况下,
project()
可以很好地工作:

gremlin> g.V().outE().project('id','weight').by(id).by('weight')
==>[id:9,weight:0.4]
==>[id:7,weight:0.5]
==>[id:8,weight:1.0]
==>[id:10,weight:1.0]
==>[id:11,weight:0.4]
==>[id:12,weight:0.2]
或者您可以使用
valueMap()
——在3.4.0中,您有
with()
语法:

gremlin> g.V().outE().valueMap('weight').with(WithOptions.tokens)
==>[id:9,label:created,weight:0.4]
==>[id:7,label:knows,weight:0.5]
==>[id:8,label:knows,weight:1.0]

应该避免返回顶点和边等图形元素,而是将结果转换为所需的特定形式。你可以用很多方法来做到这一点。在这种情况下,
project()
可以很好地工作:

gremlin> g.V().outE().project('id','weight').by(id).by('weight')
==>[id:9,weight:0.4]
==>[id:7,weight:0.5]
==>[id:8,weight:1.0]
==>[id:10,weight:1.0]
==>[id:11,weight:0.4]
==>[id:12,weight:0.2]
或者您可以使用
valueMap()
——在3.4.0中,您有
with()
语法:

gremlin> g.V().outE().valueMap('weight').with(WithOptions.tokens)
==>[id:9,label:created,weight:0.4]
==>[id:7,label:knows,weight:0.5]
==>[id:8,label:knows,weight:1.0]