Neo4j Cypher查询获取所有子节点,直到到达具有特定关系的节点

时间:2016-09-30 18:38:08

标签: graph neo4j cypher

Graph I am trying to parse

我正在尝试创建一个查询,其中以蓝色节点“分析单位”开头。查询将获得所有子节点,除非它通过直接连接到不同的分析单元而进入“覆盖”关系的节点。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

此查询是否适合您?

它应该返回每个Blue节点(具有到任何Red节点的路径)及其“子节点”(沿着每个路径),忽略任何子节点的路径(第一个除外)有一个传入的ANALYTICALLY_COMPOSED关系:

MATCH (a:Blue)-[:ANALYTICALLY_COMPOSED]->(b)
MATCH p=(b)-[rels*]-(:Red)
WITH a, NODES(p) AS subnodes
WHERE NONE(n IN subnodes[1..] WHERE ()-[:ANALYTICALLY_COMPOSED]->(n)) 
RETURN a, subnodes;