0
我需要返回「帖子」的頂點,但這些職位有一些「喜歡」的邊緣,我怎麼能返回的「喜歡」邊緣計數爲崗位作爲邊的屬性,如:如何在「JanusGraph」或「Gremlin」中將「連接」頂點及其邊的數量作爲這些頂點的「屬性」?
{標題: 'Lorem存有.....', 內容: 'yadayadayada', 喜歡:6 < ---- }
我需要返回「帖子」的頂點,但這些職位有一些「喜歡」的邊緣,我怎麼能返回的「喜歡」邊緣計數爲崗位作爲邊的屬性,如:如何在「JanusGraph」或「Gremlin」中將「連接」頂點及其邊的數量作爲這些頂點的「屬性」?
{標題: 'Lorem存有.....', 內容: 'yadayadayada', 喜歡:6 < ---- }
使用TinkerPop有關的現代玩具圖作爲一個例子,你可以做什麼像這樣:
gremlin> g.V().as('a').
......1> map(outE('created').count()).as('count').
......2> select('a','count').by(valueMap()).by()
==>[a:[name:[marko],age:[29]],count:1]
==>[a:[name:[vadas],age:[27]],count:0]
==>[a:[name:[lop],lang:[java]],count:0]
==>[a:[name:[josh],age:[32]],count:2]
==>[a:[name:[ripple],lang:[java]],count:0]
==>[a:[name:[peter],age:[35]],count:1]
它返回「a」中頂點的屬性和「創建」邊的數量。您也可以選擇使用project()
:
gremlin> g.V().
......1> project('a','knows','created').
......2> by(valueMap()).
......3> by(outE('knows').count()).
......4> by(outE('created').count())
==>[a:[name:[marko],age:[29]],knows:2,created:1]
==>[a:[name:[vadas],age:[27]],knows:0,created:0]
==>[a:[name:[lop],lang:[java]],knows:0,created:0]
==>[a:[name:[josh],age:[32]],knows:0,created:2]
==>[a:[name:[ripple],lang:[java]],knows:0,created:0]
==>[a:[name:[peter],age:[35]],knows:0,created:1]
爲什麼最後這個空由()? –
當您select()''by()'調製器以循環方式應用時,所以如果您不添加空的'by()'以不改變地通過「count」,Gremlin將嘗試應用一個'valueMap()',這會導致一個錯誤,因爲您將嘗試將'valueMap()'應用於'count'的'Long'值。 –
我需要一些材料來深入瞭解Gremlin,文檔很混亂,並且沒有以更相互關聯的方式解釋事情,有人可以推薦一些視頻,書籍或類似的東西的材料嗎? 我在尋找「gremlin」和「tinkerpop」,有更好的關鍵詞來找到更多相關的材料嗎? –