我试图提出一个密码查询,该查询可以返回某些父母的子节点,其中孩子的父母都是所希望的父母。
我在这个控制台上有一个示例数据集:http://console.neo4j.org/?id=nsq8c1
在示例中,我们有包含父节点的组节点,以及具有正好2个父节点的子节点,并且所有组中的所有父节点都具有与其他父节点相关的子节点。现在我想找回在group1中同时拥有父母的孩子。
我尝试的示例查询是match (group { name: "group1" })-[:contains]->(parent)-[:has_child]->(child) return child
,它只返回所有子节点,而不仅仅是childofsamandjane。
鉴于group1,你如何得到childofsamandjane?
答案 0 :(得分:4)
SBS,
以下是一种方法:
MATCH (group { name: "group1" })-[:contains]->(parent)-[:has_child]->(child)
WITH group, parent, child
MATCH (child)<-[:has_child]-(parent2)<-[:contains]-(group)
WHERE parent <> parent2
RETURN DISTINCT child
您将小组中的父母与其所有子女进行匹配,然后从每个小孩回到同一组中的其他父母。
恩典与和平,
吉姆