【问题标题】:Neo4j cypher to count and display all the relationship between two given nodesNeo4j cypher 计算并显示两个给定节点之间的所有关系
【发布时间】:2014-07-29 02:50:23
【问题描述】:

这里我使用的是neo4j rest api, 在第一步中,我想收集信息,例如两个给定节点之间有多少关系。

示例:MATCH (n:Node {id: {parameter1}})-[r:someType]-(m:Node {id: {parameter2}}) RETURN COUNT(r)

然后我想收集分配给边缘的所有值,以便进行进一步的计算。我需要两个给定节点之间所有不同类型的关系及其属性。

如果可能的话,我想用单一密码来做。

【问题讨论】:

    标签: java graph playframework neo4j cypher


    【解决方案1】:

    然后我想收集分配给边缘的所有值

    MATCH (n:Node {id: {parameter1}})-[r:someType]-(m:Node {id: {parameter2}})
    RETURN COUNT(r) AS count, COLLECT(r) AS rels 
    

    请注意,我唯一更改的是将collect(r) AS rels 添加到返回中,这为您提供了Relationship 对象的集合,这些对象表示这些节点之间带有标签someType 的所有边。

    获取任何类型的所有边:

    MATCH (n:Node {id: {parameter1}})-[r]-(m:Node {id: {parameter2}})
    RETURN COUNT(r) AS count, collect(r) AS rels ORDER BY labels(r)
    

    MATCH 中删除标签要求以返回任何类型的所有关系的集合。按标签对该集合进行排序,以便返回的关系列表按类型排序,以便您根据需要轻松区分它们以进行“进一步计算”

    此代码未经测试,我不能 100% 确定您可以在集合上调用标签。如果没有,请告诉我,我将提供替代解决方案

    【讨论】:

    • 嘿,谢谢drawmore!这里 rels 是正确的数组,如何将 neo4j 数组访问到 java 输出中,有什么线索吗?
    • @SagiruddinMondal rels 是与查询匹配的所有关系的集合,是的。至于您的另一个问题,假设您要问“我如何将Relationship 对象的集合转换为您的类的对象数组-这是一个非常大的问题。您这样做的策略将非常重要你的整体设计策略。请参阅this tutorial 领域建模,它对我帮助很大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多