深入學(xué)習(xí)Gremlin(23):轉(zhuǎn)換操作

第23期 Gremlin Steps:

map、flatMap()

本系列文章的Gremlin示例均在HugeGraph圖數(shù)據(jù)庫(kù)上執(zhí)行,環(huán)境搭建可參考準(zhǔn)備Gremlin執(zhí)行環(huán)境,本文示例均以其中的“TinkerPop關(guān)系圖”為初始數(shù)據(jù)。

tinkerpop關(guān)系圖

上一期:深入學(xué)習(xí)Gremlin(22):遍歷終止操作

轉(zhuǎn)換操作說(shuō)明

  • map: 可以接受一個(gè)遍歷器 Step 或 Lamda 表達(dá)式,將遍歷器中的元素映射(轉(zhuǎn)換)成另一個(gè)類型的某個(gè)對(duì)象(一對(duì)一),以便進(jìn)行下一步處理;
  • flatMap: 可以接受一個(gè)遍歷器 Step 或 Lamda 表達(dá)式,將遍歷器中的元素映射(轉(zhuǎn)換)成另一個(gè)類型的某個(gè)對(duì)象流或迭代器(一對(duì)多)。

實(shí)例講解

下面通過(guò)實(shí)例來(lái)深入理解每一個(gè)操作。

  1. Step map()

    示例1:

    // 獲取頂點(diǎn)“3:HugeGraph”的入“created”頂點(diǎn)的“name”屬性,其實(shí)可以理解為頂點(diǎn)對(duì)象轉(zhuǎn)化成了屬性值對(duì)象
    g.V('3:HugeGraph').in('created').map(values('name'))
    // g.V('3:HugeGraph').in('created').map {it.get().value('name')}
    

    自己動(dòng)手將g.V('3:HugeGraph').in('created').map {it.get().value('name')}的注視打開(kāi)試試效果。

    示例2:

    // 先獲取頂點(diǎn)“3:HugeGraph”的入“created”頂點(diǎn),再將每個(gè)頂點(diǎn)轉(zhuǎn)化為出邊(一條)
    g.V('3:HugeGraph').in('created').map(outE())
    

    注意:頂點(diǎn)“javeme”其實(shí)是有三條邊的,但是這里只打印出了一條。因?yàn)?code>mapStep是一對(duì)一的轉(zhuǎn)換,要想獲取所有的邊可以使用flatMap

  2. Step flatMap()

    示例1:

    // 先獲取頂點(diǎn)“3:HugeGraph”的入“created”頂點(diǎn),再將每個(gè)頂點(diǎn)轉(zhuǎn)化為出邊(多條)
    g.V('3:HugeGraph').in('created').flatMap(outE())
    

    注意:這一次就能打印出頂點(diǎn)“javeme”的全部三條邊了。

下一期:深入學(xué)習(xí)Gremlin(24):待添加

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容