深入学习Gremlin(23):转换操作

第23期 Gremlin Steps:

mapflatMap()

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

tinkerpop关系图

上一期:深入学习Gremlin(22):遍历终止操作

转换操作说明

  • map: 可以接受一个遍历器 Step 或 Lamda 表达式,将遍历器中的元素映射(转换)成另一个类型的某个对象(一对一),以便进行下一步处理;
  • flatMap: 可以接受一个遍历器 Step 或 Lamda 表达式,将遍历器中的元素映射(转换)成另一个类型的某个对象流或迭代器(一对多)。

实例讲解

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

  1. Step map()

    示例1:

    // 获取顶点“3:HugeGraph”的入“created”顶点的“name”属性,其实可以理解为顶点对象转化成了属性值对象
    g.V('3:HugeGraph').in('created').map(values('name'))
    // g.V('3:HugeGraph').in('created').map {it.get().value('name')}
    

    自己动手将g.V('3:HugeGraph').in('created').map {it.get().value('name')}的注视打开试试效果。

    示例2:

    // 先获取顶点“3:HugeGraph”的入“created”顶点,再将每个顶点转化为出边(一条)
    g.V('3:HugeGraph').in('created').map(outE())
    

    注意:顶点“javeme”其实是有三条边的,但是这里只打印出了一条。因为mapStep是一对一的转换,要想获取所有的边可以使用flatMap

  2. Step flatMap()

    示例1:

    // 先获取顶点“3:HugeGraph”的入“created”顶点,再将每个顶点转化为出边(多条)
    g.V('3:HugeGraph').in('created').flatMap(outE())
    

    注意:这一次就能打印出顶点“javeme”的全部三条边了。

下一期:深入学习Gremlin(24):待添加

你可能感兴趣的:(深入学习Gremlin(23):转换操作)