晚上好,
作为初学者,我努力将我的关系数据库知识转移到图形数据库及其查询。让我们假设我有一个包含以下节点的图表:
用户节点与SUB GROUP 2和DETAIL GROUP Z相关。
使用查询
MATCH (user:PERSON {name: "user"})-[relation:IS_MEMBER_OF*0..]->(team:GROUP)
RETURN team
我直接找到用户所属的群组。
希望知道用户也连接到的组,因为PERSON也是SUB GROUP 1,MAIN GROUP A和MAIN GROUP B的成员。
有人能把我推向正确的方向吗?非常感谢。
Balael
答案 0 :(得分:2)
假设您有一个HAS_SUBGROUP
关系将父组链接到每个子组,此查询应该返回用户是每个团队的直接成员,并为每个团队返回不同的祖先团队集合。
MATCH (:PERSON {name: "user"})-[:IS_MEMBER_OF*]->(team:GROUP)
OPTIONAL MATCH (team)<-[:HAS_SUBGROUP*]-(ancestor_team)
RETURN team, COLLECT(DISTINCT ancestor_team);