暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

深入学习Gremlin(3):has条件过滤

HugeGraph 2021-07-15
1502

第3期 Gremlin Steps:

hasLabel(labels…)

hasId(ids…)

has(key, value)

has(label, key, value)

has(key, predicate)

hasKey(keys…)

hasValue(values…)

has(key)

hasNot(key)


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

环境搭建:https://www.jianshu.com/p/618cf6667381


上一期:深入学习Gremlin(2):边的遍历操作

Has Step说明

在众多Gremlin的语句中,有一大类是filter类型,顾名思义,就是对输入的对象进行条件判断,只有满足过滤条件的对象才可以通过filter进入下一步。

has语句是filter类型语句的代表,能够以顶点和边的属性作为过滤条件,决定哪些对象可以通过。has语句包括很多变种:

  • hasLabel(labels…)
    :

        满足一个label就可以通过

  • hasId(ids…)
    :

    满足一个ID就可以通过

  • has(key, value)
    :

    有“key=value”property的通过

  • has(label, key, value)
    :

    有“key=value”且label的通过

  • has(key, predicate)
    :

    有key且对应的value满足predicate

  • hasKey(keys…)
    :

    properties包含所有的key才能通过

  • hasValue(values…)
    :

    properties包含所有的value才能通过

  • has(key)
    :

    有这个属性的通过

  • hasNot(key)
    :

    没有这个属性的通过

TinkerPop规范中,也可以对Vertex Property进行has()操作,前提是图支持meta-property。HugeGraph不支持meta-property,因此本文不会有Vertex Property相关的has()示例。

实例讲解

下面通过实例来深入理解每一个操作。内容较多,请访问如下链接或点击底部“阅读原文”链接阅读完整内容:https://blog.csdn.net/linlin1989117/article/details/82589895

请点击底部“阅读原文”查看完整代码

文章转载自HugeGraph,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论