返回节点时尊重关系

时间:2018-07-02 14:59:37

标签: neo4j cypher

我有一个像这样的父子节点集合:

(adult1:Person)-[:PARENT_OF]->(child1:Person)
(adult1:Person)-[:PARENT_OF]->(child2:Person)

(adult2:Person)-[:PARENT_OF]->(child3:Person)
(adult2:Person)-[:PARENT_OF]->(child4:Person)

当我执行以下查询时,我不顾成人和儿童之间的关系而取回它们。

MATCH (parents:Person)-[:PARENT_OF]->(children:Person)

RETURN parents, children

我想遍历父母,并为每个父母归还父母及其直系子女

记录1

- adult1
- child1
- child2

记录2

- adult2
- child3
- child4

我已经花了几个小时,还没有找到解决方案。

非常感谢

2 个答案:

答案 0 :(得分:2)

您可以收集子节点并将父节点添加到集合中。然后,将其退回。

MATCH (parent:Person)-[:PARENT_OF]->(children:Person)
RETURN parent + collect(children)

答案 1 :(得分:2)

您可以返回每个父母的孩子的集合:

MATCH (parent:Person)-[:PARENT_OF]->(child:Person)
RETURN parent, COLLECT(child) AS children;