0

私はグラフデータベースに非常に慣れていないので、助けが必要です。

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 出力を取得するにはどうすればよいですか?

4

3 に答える 3

1

次のクエリを試してください。

g.V('user:589435392:512').out('events').
  project('event','users').by().by(__.in('events').fold())
于 2016-08-24T19:02:20.747 に答える
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}

それとは別に、イベントをエッジ ラベルとして使用せず、代わりに、triggeredEvent や hadEvent など、よりわかりやすいものを選択ます

于 2016-08-24T17:41:28.193 に答える
0

この項目のデータ モデルを確認することをお勧めします。ユーザーが頂点であり、イベントがエッジであるかのように見えます。イベントをエッジとして作成することを考えましたか?

既存の User --Event--> User モデルに基づく gremlin 構文を支援するには

gV().outE('Events') // エッジの内外を指す頂点を含む、イベントのすべてのエッジを提供します

あなたが書いたクエリでは、 outE().inV() を使用するのと同等の out() を使用しています

于 2016-08-24T12:48:25.150 に答える