Neo4J 查询相关用户
Neo4J query for related users
我在 Neo4J 中有以下示例,其中用户彼此感兴趣。存在两个连接,因为每个用户可以单独设置权重因子,并且一些用户可能彼此不感兴趣。
我想编写一个 Cypher 查询来检索用户的相关用户,同时告诉我哪些用户已连接。
例如,对于用户 Fred、return Tom、Jane 以及 return Jane 对 Tom 感兴趣。 Bob 和 Sarah 不应该 returned。
这是我目前的情况:
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
这是正确的路线吗?我想将其映射到 Spring Neo4J 存储库方法,但想确保查询正确并且我将能够导航对象图以显示上述信息。
如有任何帮助,我们将不胜感激。
这可能会做你想做的事:
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
它 returns 在每个结果行中 u
的兴趣(即 u2
),以及他们的共同兴趣。
我在 Neo4J 中有以下示例,其中用户彼此感兴趣。存在两个连接,因为每个用户可以单独设置权重因子,并且一些用户可能彼此不感兴趣。
我想编写一个 Cypher 查询来检索用户的相关用户,同时告诉我哪些用户已连接。
例如,对于用户 Fred、return Tom、Jane 以及 return Jane 对 Tom 感兴趣。 Bob 和 Sarah 不应该 returned。
这是我目前的情况:
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
这是正确的路线吗?我想将其映射到 Spring Neo4J 存储库方法,但想确保查询正确并且我将能够导航对象图以显示上述信息。
如有任何帮助,我们将不胜感激。
这可能会做你想做的事:
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
它 returns 在每个结果行中 u
的兴趣(即 u2
),以及他们的共同兴趣。