深入學習Gremlin(23):轉換操作map/flatMap

第23期 Gremlin Steps:

mapflatMap()

本系列文章的Gremlin示例均在HugeGraph圖數據庫上執行,環境搭建可參考準備Gremlin執行環境,本文示例均以其中的“TinkerPop關係圖”爲初始數據。

tinkerpop關係圖

上一期:深入學習Gremlin(22):遍歷終止terminal

轉換操作說明

  • 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):附加操作sideEffect

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章