【问题标题】:neo4j cypher count relations between same type of nodes相同类型节点之间的 neo4j 密码计数关系
【发布时间】:2015-03-05 21:29:15
【问题描述】:

我在图形数据库方面太新了,我在从这样的模型中获取数据时遇到了问题。

我正在尝试计算 User1 和与 user1 位于同一组中的所有其他用户之间的共同点赞数。这是我试图为 User1 获得的结果:

User , Count, Drinks
User3,     2, [ Cola, Beer ]
User2,     1, [ Cola ]
User5,     1, [ Tea ]
User4,     0, [ ]
User6,     0, [ ]

这似乎很容易,但对我来说却不是。

我可以获取用户并计算与有关系的用户,但不能与没有关系的用户。请问有人可以帮我吗?提前致谢!

【问题讨论】:

    标签: count neo4j match cypher


    【解决方案1】:

    我提出的解决方案有以下逻辑:

    • 找到用户 1
    • 查找不是用户 1 的其他用户
    • 为用户 1、饮料和其他用户的当前迭代之间的路径查找 OPTIONAL MATCH

    这是基于以下测试图:

    http://console.neo4j.org/r/xc3cqt

    查询:

    MATCH (u:User { id:1 })
    MATCH (o:User)
    WHERE o <> u
    OPTIONAL MATCH (u)-[r:LIKES]->(d)<-[:LIKES]-(o)
    RETURN o.id, count(r) as c, collect(DISTINCT (d.name)) AS drink
    

    您提供的图表的结果:

    o.id    c           drink
    2       1           [Cola]
    5       1           [Tea]
    4       0           []
    3       2           [Beer, Cola]
    6       0           []
    

    【讨论】:

    • 像魅力一样工作!毕竟解决方案很简单。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多