如何获得推荐用户的角色

时间:2019-11-01 08:50:03

标签: neo4j spring-data-neo4j

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

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

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

1 个答案:

答案 0 :(得分:0)

您的查询不会查找任何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