将 Gremlin GraphTraversal 结果与字符串连接起来
Concatenate Gremlin GraphTraversal result with string
在这个非常简单的示例中,我尝试添加一个新顶点,它应该像现有顶点一样被标记,但附加了一些前缀:
g.V(1).addV('prefix_' + label()).valueMap(true)
我在这里错过了什么?它显然不是一个字符串,但我将如何序列化它?
gremlin> g.V(1).label()
==>Person
gremlin> g.V(1).constant(label())
==>[LabelStep]
目前的 Gremlin 不提供内置的字符串连接功能。如果可以的话就好了。这意味着您今天最好的选择是使用内嵌 closure/lambda。这是一个使用 TinkerGraph 和航线图的示例。
gremlin> g.V(3).map {"prefix_" + it.get().label}.as('a').addV(select('a'))
==>v[60867]
gremlin> g.V(60867).label()
==>prefix_airport
请注意,并非所有图形数据库都允许闭包,因此不能假设这在任何启用 TinkerPop 的图形数据库后端上都普遍适用。
在这个非常简单的示例中,我尝试添加一个新顶点,它应该像现有顶点一样被标记,但附加了一些前缀:
g.V(1).addV('prefix_' + label()).valueMap(true)
我在这里错过了什么?它显然不是一个字符串,但我将如何序列化它?
gremlin> g.V(1).label()
==>Person
gremlin> g.V(1).constant(label())
==>[LabelStep]
目前的 Gremlin 不提供内置的字符串连接功能。如果可以的话就好了。这意味着您今天最好的选择是使用内嵌 closure/lambda。这是一个使用 TinkerGraph 和航线图的示例。
gremlin> g.V(3).map {"prefix_" + it.get().label}.as('a').addV(select('a'))
==>v[60867]
gremlin> g.V(60867).label()
==>prefix_airport
请注意,并非所有图形数据库都允许闭包,因此不能假设这在任何启用 TinkerPop 的图形数据库后端上都普遍适用。