第24期 Gremlin Steps:
sideEffect()
本系列文章的Gremlin示例均在HugeGraph图数据库上执行,环境搭建可参考准备Gremlin执行环境,本文示例均以其中的“TinkerPop关系图”为初始数据,如下图所示:
上一期:深入学习Gremlin(23):转换操作map/flatMap
附加操作说明
Gremlin在路径遍历的时候,可以在路径中做一些额外的附加操作,这个附加操作不会改变上一步的结果,会原封不动的传递到下一步去。附加操作看起来就像透明的,但实际上可以将附加操作的处理结果存储到外部变量中去。
下面讲解实现上述功能的具体Step:
-
sideEffect()
: 在某个位置插入一个附加操作,以执行额外的操作,通常可与store
、sack
等配合使用。另外如下一些Step本质上也是sideEffect
:group(string)
、groupCount(string)
、subgraph(string)
、aggregate(string)
、inject(string)
、profile(string)
等。 -
withSideEffect()
:绑定初始值到变量上,等价于sideEffect
的效果。
实例讲解
下面通过实例来深入理解每一个操作。
-
Step
sideEffect()
: 附加操作示例1:
// 将所有顶点打印出来 // sideEffect本身不影响结果 def list=[] g.V().hasLabel('person') .sideEffect{ list.add("vertex:"+it)}