Gremlin:如何识别哪些属性属于哪个边缘



我有一个简单的图形,带有两个顶点,具有IDS'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]

每个边缘都有一个属性="委托"。

[2] gremlin> g.e()。properties()

==> p [consited-> 2]

==> p [consited-> 1]

我的问题:我想列举边缘并像步骤[2]一样返回其各自的属性,但是如何将结果中的边缘属性匹配到其各自的边缘(IDS)?我回来的只是属性键值分配;与边缘ID有关的没有任何关系。

谢谢,

乔尔·斯特维克

您应该避免返回诸如顶点和边缘之类的图形元素,而是将结果转换为需要它的特定形式。您可以通过多种方式做到这一点。在这种情况下,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]

最新更新