2016-08-23 70 views
0

我需要一些幫助,因爲我在圖形數據庫中很新。Gremlin加入多個頂點值

進出口運行這個小鬼查詢我的DSE圖:

g.V('user:589435392:512').out('events').inE('events') 

圖形視圖返回

graph view

但生JSON回報:

{ 
    "id": "{out_vertex={member_id=512, community_id=589435392, ~label=user}, local_id=d2e29e60-5fc2-11e6-87aa-8d7f17e3c204, in_vertex={member_id=0, community_id=100599424, ~label=events}, ~type=events}", 
    "label": "events", 
    "type": "edge", 
    "inVLabel": "events", 
    "outVLabel": "user", 
    "inV": "events:100599424:0", 
    "outV": "user:589435392:512" 
}, 
{ 
    "id": "{out_vertex={member_id=1, community_id=1205145984, ~label=user}, local_id=7c838fd0-6327-11e6-87aa-8d7f17e3c204, in_vertex={member_id=0, community_id=100599424, ~label=events}, ~type=events}", 
    "label": "events", 
    "type": "edge", 
    "inVLabel": "events", 
    "outVLabel": "user", 
    "inV": "events:100599424:0", 
    "outV": "user:1205145984:1" 
} 

而且我需要的東西像這樣:

{ 
    "event": {"some infos about this event"}, 
    "users": [{"user1"}, {"user2"},...] 
} 

我該如何實現一個JSON輸出,它顯示了一個用戶和所有參與事件的用戶的所有事件?

回答

0

你可能想看看這個項目的數據模型。它看起來好像用戶是頂點並且事件是邊緣。你有沒有想過創建事件的邊緣?

爲了幫助基於現有用戶的小鬼語法--event - >用戶模型

GV()歐特(「活動」)//會給你活動所有邊緣,包括頂點。在查詢指着進出邊緣

的你寫你使用了(),它等同於使用歐特()。INV()

0

描述是事件頂點的屬性,那麼以下查詢應該可以工作:

g.V().has('user','name','user1').out().as('event').in().as('user').select('event','user').by('description').by('name') 
==>{event=some infos about this event, user=user1} 
==>{event=some infos about this event, user=user2} 

在這裏,你可以看到它在行動:http://gremlinbin.com/bin/view/57bdda16b22b5

除此之外,我不會用事件爲邊緣標籤,而是選擇更具描述性的像triggeredEventhadEvent,或類似的東西。

1

你應該嘗試此查詢:

g.V('user:589435392:512').out('events'). 
    project('event','users').by().by(__.in('events').fold()) 
相關問題