深入学习Gremlin(10):逻辑运算

本文深入探讨了Gremlin中的逻辑运算步骤,包括`eq`、`and`、`or`和`not`,详细解释了它们的工作原理和用法。通过实例展示了如何使用这些逻辑运算符进行图数据过滤,如找到年龄不等于28的顶点,以及结合多个条件进行复杂查询。此外,还提到了逻辑运算符可以采用中缀形式写作。
摘要由CSDN通过智能技术生成

第10期 Gremlin Steps:

is()and()or()not()

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

tinkerpop关系图

上一期:深入学习Gremlin(9):条件和过滤

逻辑运算说明

Gremlin支持在遍历器上加上逻辑运算进行过滤,只有满足该逻辑条件的元素才会进入下一个遍历器中。

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

  • is():可以接受一个对象(能判断相等)或一个判断语句(如:P.gt()P.lt()P.inside()等),当接受的是对象时,原遍历器中的元素必须与对象相等才会保留;当接受的是判断语句时,原遍历器中的元素满足判断才会保留,其实接受一个对象相当于P.eq()
  • and():可以接受任意数量的遍历器(traversal),原遍历器中的元素,只有在每个新遍历器中都能生成至少一个输出的情况下才会保留,相当于过滤器组合的与条件;
  • or():可以接受任意数量的遍历器(traversal),原遍历器中的元素,只要在全部新遍历器中能生成至少一个输出的情况下就会保留,相当于过滤器组合的或条件;
  • not():仅能接受一个遍历器(traversal),原遍历器中的元素,在新遍历器中能生成输出时会被移除,不能生成输出时则会保留,相当于过滤器的非条件。

这四种逻辑运算Step除了像一般的Step写法以外,and()or()还可以放在where()中以中缀符的形式出现。

实例讲解

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

  1. Step is()

    示例1:

    // 筛选出顶点属性“age”等于28的属性值,与`is(P.eq(28))`等效
    g.V().values('age').is(28)
    

    当没有任何一个顶点的属性“age”为28时,输出为空。

    示例2:

    // 筛选出顶点属性“age”大于等于28的属性值
    g.V().values('age').is(gte(28))
    

    示例3:

    // 筛选出顶点属性“age”属于区间(27,29)的属性值
    g.V().values('age').is(inside(27, 29))
    

    P.inside(a, b)是左开右开区间(a,b)

    示例4:

    // 筛选出由两个或两个以上的人参与创建(“created”)的顶点
    // 注意:这里筛选的是顶点
    g.V().where(__.in
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值