簡體   English   中英

Gremlin 連接多個頂點值

[英]Gremlin join multiple vertices values

我需要一些幫助,因為我對圖形數據庫很陌生。

我在我的 DSE Graph 上運行這個 Gremlin 查詢:

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

圖表視圖返回

圖表視圖

但是原始 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 輸出,顯示用戶的所有事件以及事件的所有相關用戶?

你應該試試這個查詢:

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

您可能想查看包含此項的數據模型。 看起來好像用戶是頂點,事件是邊。 您是否考慮過將事件創建為邊緣?

根據現有的 User --Event--> User 模型幫助使用 gremlin 語法

gV().outE('Events') // 將為您提供事件的所有邊緣,包括指向邊緣和指向邊緣的頂點

在您編寫的查詢中,您正在使用 out() 這相當於使用 outE().inV()

描述是事件頂點的屬性時,以下查詢應該有效:

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}

除此之外,我不會用事件作為邊緣的標簽,而是選擇更具描述性的像triggeredEvent,hadEvent,或者類似的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM