2016-08-23 5 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 - > [Userモデル

GV()OUTE(「イベント」)//あなたの頂点を含むイベントのすべてのエッジを与えるだろう。 OUTEを()使用するのと同じである)あなたは(アウト使用している書いたクエリで

でエッジの指摘。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

とは別に、私はエッジラベルとしてイベントを使用して、代わりにtriggeredEventのようなより説明的なものを選択しないだろう、hadEvent、またはそんな感じ。

1

あなたはこのクエリを試してみてください:

g.V('user:589435392:512').out('events'). 
    project('event','users').by().by(__.in('events').fold()) 
関連する問題