代码之家  ›  专栏  ›  技术社区  ›  Swordfish

Neo4J相关用户查询

  •  0
  • Swordfish  · 技术社区  · 7 年前

    我在Neo4J中有以下示例,其中用户彼此感兴趣。有两种连接,因为每个用户都可以单独设置权重因子,而一些用户可能彼此不感兴趣。

    enter image description here

    我想编写一个Cypher查询来检索用户的相关用户,同时告诉我哪些用户已连接。

    例如,对于用户Fred,返回Tom、Jane,还返回Jane对Tom感兴趣。鲍勃和莎拉不应该被归还。

    MATCH (u:User)-[r1:INTERESTED_IN]->(u2:User)
    WHERE u.emailAddress ='fred@mail.com'
    OPTIONAL MATCH (u)-[r2:INTERESTED_IN]->(u3:User)
    OPTIONAL MATCH (u2)-[r3:INTERESTED_IN]->(u3)
    RETURN u, r1, u2, r2, u3, r3
    

    任何帮助都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  1
  •   cybersam    7 年前

    这可能会满足您的要求:

    MATCH (u:User)-[:INTERESTED_IN]->(u2:User)
    WHERE u.emailAddress = 'fred@mail.com'
    OPTIONAL MATCH (u)-[:INTERESTED_IN]->(u3:User)<-[:INTERESTED_IN]-(u2)
    RETURN u, u2, COLLECT(u3) AS mutualInterests
    

    u (即:。, u2