Gremlin - 如何将值列表分配给新的 属性,用于多个顶点
Gremlin - how to assign a list of values to a new property, for multiple vertices
假设我有一个包含 ID 为 123
、456
和 789
.
的三个顶点的列表
g.V([123,456, 789])
如何添加一个名为 say testproperty
的新 属性,我有一个要同时添加的值列表 ['a', 'b', 'c']
?
伪 gremlin 代码 - 用于说明 - 不 工作是:
g.V([123,456, 789]).property('testproperty', ['a', 'b', 'c'])
明确地说,我想要两个列表之间的映射,所以 g.V(123).property('testproperty', 'a')
、g.V(123).property('testproperty', 'b')
等
所以,g.V([123,456,789]).valueMap()
应该 return:
==>{testproperty=[a]}
==>{testproperty=[b]}
==>{testproperty=[c]}
这是一种方法:
gremlin> data = [1:'a',2:'b',3:'c']
==>1=a
==>2=b
==>3=c
gremlin> g.inject(data).as('d').
......1> V(data.keySet()).as('v').
......2> property('testproperty', select('d').select(select('v').by(T.id)))
==>v[1]
==>v[2]
==>v[3]
gremlin> g.V(data.keySet()).valueMap(true)
==>[id:1,label:person,testproperty:[a],name:[marko],age:[29]]
==>[id:2,label:person,testproperty:[b],name:[vadas],age:[27]]
==>[id:3,label:software,testproperty:[c],name:[lop],lang:[java]]
假设我有一个包含 ID 为 123
、456
和 789
.
g.V([123,456, 789])
如何添加一个名为 say testproperty
的新 属性,我有一个要同时添加的值列表 ['a', 'b', 'c']
?
伪 gremlin 代码 - 用于说明 - 不 工作是:
g.V([123,456, 789]).property('testproperty', ['a', 'b', 'c'])
明确地说,我想要两个列表之间的映射,所以 g.V(123).property('testproperty', 'a')
、g.V(123).property('testproperty', 'b')
等
所以,g.V([123,456,789]).valueMap()
应该 return:
==>{testproperty=[a]}
==>{testproperty=[b]}
==>{testproperty=[c]}
这是一种方法:
gremlin> data = [1:'a',2:'b',3:'c']
==>1=a
==>2=b
==>3=c
gremlin> g.inject(data).as('d').
......1> V(data.keySet()).as('v').
......2> property('testproperty', select('d').select(select('v').by(T.id)))
==>v[1]
==>v[2]
==>v[3]
gremlin> g.V(data.keySet()).valueMap(true)
==>[id:1,label:person,testproperty:[a],name:[marko],age:[29]]
==>[id:2,label:person,testproperty:[b],name:[vadas],age:[27]]
==>[id:3,label:software,testproperty:[c],name:[lop],lang:[java]]