深入学习Gremlin(24):附加操作sideEffect

本文详细解析了图数据库查询语言Gremlin中的附加操作sideEffect,它在路径遍历时进行额外处理但不改变原有结果。文章通过实例演示了如何使用sideEffect与其他Step配合,以及如何使用toLocal来绑定变量初始值。此外,还展示了应用sideEffect计算图中节点的度中心性。
摘要由CSDN通过智能技术生成

第24期 Gremlin Steps:

sideEffect()

本系列文章的Gremlin示例均在HugeGraph图数据库上执行,环境搭建可参考准备Gremlin执行环境,本文示例均以其中的“TinkerPop关系图”为初始数据,如下图所示:

init-data

上一期:深入学习Gremlin(23):转换操作map/flatMap

附加操作说明

Gremlin在路径遍历的时候,可以在路径中做一些额外的附加操作,这个附加操作不会改变上一步的结果,会原封不动的传递到下一步去。附加操作看起来就像透明的,但实际上可以将附加操作的处理结果存储到外部变量中去。

下面讲解实现上述功能的具体Step:

  • sideEffect(): 在某个位置插入一个附加操作,以执行额外的操作,通常可与storesack等配合使用。另外如下一些Step本质上也是sideEffect

    group(string)groupCount(string)subgraph(string)aggregate(string)inject(string)profile(string)等。

  • withSideEffect():绑定初始值到变量上,等价于sideEffect的效果。

实例讲解

下面通过实例来深入理解每一个操作。

  1. Step sideEffect(): 附加操作

    示例1:

    // 将所有顶点打印出来
    // sideEffect本身不影响结果
    def list=[]
    g.V().hasLabel('person')
     .sideEffect{
         list.add("vertex:"+it)}
     
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值