Neo4j 获取未连接到根节点的子节点

Neo4j 获取未连接到根节点的子节点,neo4j,cypher,Neo4j,Cypher,我有一个被破坏的二叉树,它必须通过确保所有的子节点都可以被跟踪或者它们的源来自根节点来修复。因此,对于所有子节点,我希望获取它们的根(通常应该是id:0) 获取二叉树中每个节点的代码 FOREACH nodes CHECK RELATIONSHIP IF ROOT PARENT ID NOT 0 ID 7已从根节点断开,如何运行检查以确定7、9和10已从根节点断开连接。根据具体情况,在根节点上进行匹配可能会更快,因为根节点永远不会有传入的:关系的父节点: MATCH (root:Tree{id

我有一个被破坏的二叉树,它必须通过确保所有的子节点都可以被跟踪或者它们的源来自根节点来修复。因此,对于所有子节点,我希望获取它们的根(通常应该是id:0)

获取二叉树中每个节点的代码

FOREACH nodes
CHECK RELATIONSHIP IF ROOT PARENT ID NOT 0

ID 7已从根节点断开,如何运行检查以确定7、9和10已从根节点断开连接。

根据具体情况,在根节点上进行匹配可能会更快,因为根节点永远不会有传入的:关系的父节点:

MATCH (root:Tree{id:0})
MATCH (falseRoot:Tree)
WHERE size((falseRoot)<-[:PARENT_OF]-()) = 0 and root <> falseRoot
RETURN falseRoot
匹配(根:树{id:0})
匹配(假根:树)

WHERE size((falseRoot)图中的标签和关系类型是什么?整个图是一个二叉树吗?如果不是,您应该如何识别应该是树的一部分的节点(以便我们可以匹配它们并尝试追溯到根)?还有一种快速匹配到根的方法吗?整个图形是一个二叉树。此查询获取从根到最后一个节点的所有节点
match(n:Tree{id:0})-[:PARENT_OF*.]->(c)
返回c LIMIT 100
此查询获取从childNodes到根节点的所有节点
match(n:Tree{id:0})对于同一种关系,有两个不同的方向。我假设正确的方向是
(n:Tree{id:0})-[:PARENT\u of*.]->(c)
,方向从父节点传出到子节点。
MATCH (n:Tree)
WHERE (n)<-[:PARENT_OF*]-(n)
RETURN n