在Neo4J中查询父母和子女的一定数量的节点

时间:2015-01-16 02:33:22

标签: neo4j cypher relationship

给出以下数据集:

(a)-[:PARENT]->(b)
(b)-[:PARENT]->(c)
(c)-[:PARENT]->(d)
(d)-[:PARENT]->(e)
(e)-[:PARENT]->(f)
(g)-[:PARENT]->(h)
(h)-[:PARENT]->(i)

我希望能够为父母以及来自" D"的儿童遍历图表。节点并限制结果集中完成的跳数(即我只想返回并转发两跳以使这些数据从" B"到" H"节点结束无视所有其他几代人。)

1 个答案:

答案 0 :(得分:1)

此查询是否符合您的要求?它假定所有节点都具有带有字符串值的id属性。

MATCH p=()-[:PARENT*..2]->(x)-[:PARENT*..2]->()
WHERE x.id = 'd'
WITH DISTINCT NODES(p) AS np
UNWIND np AS n
RETURN COLLECT(DISTINCT n.id)

根据您的数据,结果将是["b","c","d","e","f"]