【问题标题】:Create Bipartite Query in Neo4j在 Neo4j 中创建二分查询
【发布时间】:2015-12-14 21:41:26
【问题描述】:

[编辑]

我有一个代表 GitHub 数据的数据库,它由 User 节点和 Repo 节点组成,从用户到 Repo 的直接关系称为 [:CONTRIBUTED]。

我正在尝试获取表格数据以在 R 中构建二分图,但不知道该怎么做。

MATCH (n:User{name:'mattt'})-[*]-(g)
RETURN g LIMIT 100

这给了我一个我想要的图表,但我不确定如何将输出格式化为表格。

我希望在结果中包含mattt,以及 1-2 度以外的所有用户/存储库。而且我还希望能够从结果中重新创建子图,因此它需要包含有关关系的信息。

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    [编辑]

    此查询使用aggregation 在每个结果行中返回一个不同的感兴趣的repo 以及对其做出贡献的用户集合:

    MATCH (user:User{name:'mattt'})-->(repo)
    MATCH (repo)<--(allUsers:User)
    RETURN repo, COLLECT(allUsers) AS users;
    

    此查询假定 CONTRIBUTED 关系不包含需要返回的重要属性。

    【讨论】:

    • 我的查询略有不同,因为我想要一个源(用户)、目标(回购)列表作为结果。最重要的部分是我希望在结果中有 'mattt' 节点,以及 1-2 度以外的所有用户/存储库。
    • 好的,请参阅我的更新答案。我还编辑了问题以包含您的说明。
    • 有没有一种简单的方法可以返回实际关系,以便我可以重建图形?
    • 我已从 COLLECT() 中删除了 DISTINCT 关键字,因为它(可能)在此查询中是多余的。 MATCH 子句会自动过滤掉所有重复的关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多