第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è)操作。
-
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。 -
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”的全部三條邊了。


