深入学习Gremlin(13):路径选取与过滤

本文深入探讨了Gremlin中的路径选取与过滤技术,包括使用`as`和`select`进行路径选择,以及`where`、`match`和`dedup`等步骤的条件过滤和模式匹配功能。通过实例讲解,展示了如何在HugeGraph图数据库上应用这些技巧,以实现路径结果的筛选和去重。
摘要由CSDN通过智能技术生成

第13期 Gremlin Steps:

as()+select()as()+where()as()+match()as()+dedup()

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

上一期: 深入学习Gremlin(12):数学运算

路径选取与过滤说明

Gremlin支持从走过的路径里选取部分数据作为结果,并且可以在选取时进行条件过滤。

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

  • as()+select(): 对路径中结果进行选取,首先通过as(label)对任意步骤打上标签,然后使用select(label)来选取若干历史步骤的结果作为新结果。此外还可通过select().by(property)来指定根据什么维度进行选取。
  • as()+where(): 以条件匹配的方式进行路径结果选取,只有符合条件的路径才能被选取出来。
  • as()+match(): 以模式匹配的方式进行路径结果选取,只有符合模式的路径才能被选取出来。
  • as()+dedup(): 根据路径中的若干步骤的结果进行去重,只有首次出现的路径段才能被选取出来。
实例讲解

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

  1. Step as()...select():对路径中结果进行选取

    示例1:

    // 从路径中选取第1步和第3步的结果作为最终结果
    g.V('2:HugeGraph').as('a')
     .out().as('b')
     .out().as('c')
     .select('a', 'c')
    

    g.V(id).as().select()

    对比:不选取时获取的完整路径
    g.V(id).as().select()
    g.V('2:HugeGraph').as('a').out().as('b').out().as('c').path()

    示例2:

    // 从集合中选择最后一个元素
    g.V('2:HugeGraph').as("a")
     .repeat(out().as("a")).times(2)
     .select(last, "a")
    

    g.V(id).as().select(last)

    试一试:<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值