深入学习Gremlin(16):结果聚集与展开

第16期 Gremlin Steps:

aggregate()store()unfold()fold()

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

init-data

上一期: 深入学习Gremlin(15):合并

结果聚集与展开说明

Gremlin在路径游走的时候,可以将某一步的所有结果收集到一个集合里面(我们称之为结果聚集),以备在后续步骤中使用;此外还可在需要的时候将聚集的结果展开。

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

  • aggregate(): 聚集路径中指定步骤的所有结果,通过aggregate(label)对任意步骤打上标签,在此之前的步骤的结果均会被收集到此标签所代表的集合中(但并不会影响路径的游走),可配合bycap一起使用,通过cap(label)来获取该结果集合,此外还可通过select(label)without(label)等其它方式读取。
  • store(): 类似aggregate(),只是以Lazy的方式来收集。
  • unfold(): 将集合展开平铺,路径将扩张。
  • fold(): 将多个元素折叠为一个集合,路径将收缩。
实例讲解

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

  1. Step aggregate():聚集路径中的结果

    示例1:

    // 收集第1步的结果到集合'x'中
    // 注意:不影响后续结果
    g.V('2:HugeGraph').out().aggregate('x')
    

    g.V(id).out().aggregate()

    示例2:

    // 收集第1步的结果到集合'x'中
    // 并通过cap取出结果
    // 与示例1比较,结果的层次更深了
    g.V('2:HugeGraph').out()
     .aggregate('x').cap('x')
    

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值