我创建了具有某些关系的User
类。还希望获得与已经存在的用户发展关系的REFERRED_BY
关系。
我已经使用查询来获取彼此连接的用户,但它没有返回用户的角色。
MATCH (u:User)-[:REFERRED_BY]-(myMembers:User)
WHERE ID(u) = {0}
RETURN myMembers
答案 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