【问题标题】:Gremlin join multiple vertices valuesGremlin 连接多个顶点值
【发布时间】:2016-12-30 11:04:13
【问题描述】:

我需要一些帮助,因为我是图形数据库的新手。

我正在我的 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 输出,显示用户的所有事件以及事件的所有相关用户?

【问题讨论】:

    标签: graph datastax gremlin datastax-enterprise-graph


    【解决方案1】:

    你应该试试这个查询:

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

    【讨论】:

    • 你能解释一下这个查询在做什么吗?
    【解决方案2】:

    您可能希望查看包含此项目的数据模型。看起来好像用户是顶点,事件是边。您是否考虑过将事件创建为边缘?

    帮助基于现有用户的 gremlin 语法 --Event--> 用户模型

    g.V().outE('Events') // 将为您提供事件的所有边,包括指向边内和边外的顶点

    在您编写的查询中,您使用的是 out(),这相当于使用 outE().inV()

    【讨论】:

      【解决方案3】:

      description 是事件顶点的属性时,以下查询应该有效:

      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}
      

      除此之外,我不会使用 events 作为边缘标签,而是选择更具描述性的东西,例如 triggeredEventhadEvent 或类似的东西。

      【讨论】:

        猜你喜欢
        • 2019-01-03
        • 1970-01-01
        • 2018-07-14
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-28
        相关资源
        最近更新 更多