首页 > 解决方案 > 如何获取被推荐用户的角色

问题描述

我创建了User具有一些关系的类。还想获得REFERRED_BY与已经存在的用户发展关系的关系。

我已经使用查询来获取相互连接的用户,但它没有返回用户的角色。

 MATCH (u:User)-[:REFERRED_BY]-(myMembers:User) 
 WHERE ID(u) = {0}
 RETURN myMembers

标签: neo4jspring-data-neo4j

解决方案


您的查询不查找任何ROLE_TYPE关系,只返回用户,因此它不会返回任何角色。

假设您的数据库使用REFERRED_BY拼写(并且您真的不关心该关系的方向),您的角色节点具有Role标签,并且您正在寻找myMember节点的角色,那么这应该返回每个角色的角色列表myMember

MATCH (u:User)-[:REFERRED_BY]-(myMember:User)-[ROLE_TYPE]->(r:Role)
WHERE ID(u) = {0}
RETURN myMember, COLLECT(r) AS roles

注意:如果某些myMember节点可以没有角色,那么如果您想查看所有节点,则应该使用它myMember

MATCH (u:User)-[:REFERRED_BY]-(myMember:User)
WHERE ID(u) = {0}
OPTIONAL MATCH (myMember)-[ROLE_TYPE]->(r:Role)
RETURN myMember, COLLECT(r) AS roles

推荐阅读