我有一个带有两个顶点的简单图形,它们的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
答案 0 :(得分:2)
您应该避免返回诸如顶点和边之类的图形元素,而应将结果转换为所需的特定形式。您可以通过多种方式做到这一点。在这种情况下,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]