[英]Neo4j Cypher Query to get all sub nodes until reaching a node with a specific relationship
[英]Neo4j cypher query to get all nodes without a relationship to specific other node
这应该工作:
MATCH (red)<-[*]-(parent)-[*0..10]->(children)
WHERE red.id = xxx
RETURN parent, children
找到红色节点的所有父母和父母的所有孩子。
通常,图形DB可以具有多个不相交的子图(甚至不必是树)。 例如,假设有其他节点未以任何方式连接到子图。
这是通过前向REL
关系获得未连接到指定节点的所有节点的一种方法。 我假设有趣的节点都有相同的标签( Foo
),并且还有其他没有该标签的节点。
MATCH (n:Foo { id: 123 })-[:REL*]->(m:Foo)
WITH (COLLECT(DISTINCT m) + n) AS not_wanted
MATCH (x:Foo)
WHERE NOT x IN not_wanted
RETURN x;
注意:此查询可能需要很长时间(或耗尽内存),具体取决于以n
为根的“树”以及数据库中有多少个节点。 您应该省略不帮助您过滤掉任何内容的节点标签。
要看。 假设所有节点标签都相同,这应该有效:
MATCH (a:circle)-[r]->(b:circle)
WHERE a.colour <> 'Red' AND b.colour <> 'Red'
RETURN a,b
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.