Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Neo4j中求DAG的根_Neo4j - Fatal编程技术网

在Neo4j中求DAG的根

在Neo4j中求DAG的根,neo4j,Neo4j,我在Neo4j中有一个DAG,希望找到根节点 CREATE (a:Node {name:'A'}) CREATE (b:Node {name:'B'}) CREATE (c:Node {name:'C'}) CREATE (d:Node {name:'D'}) CREATE (e:Node {name:'E'}) CREATE (f:Node {name:'F'}) CREATE (g:Node {name:'G'}) CREATE (h:Node {name:'H'}) CREATE a-[:

我在Neo4j中有一个DAG,希望找到根节点

CREATE (a:Node {name:'A'})
CREATE (b:Node {name:'B'})
CREATE (c:Node {name:'C'})
CREATE (d:Node {name:'D'})
CREATE (e:Node {name:'E'})
CREATE (f:Node {name:'F'})
CREATE (g:Node {name:'G'})
CREATE (h:Node {name:'H'})
CREATE a-[:POINTS]->b
CREATE a-[:POINTS]->c
CREATE c-[:POINTS]->d
CREATE c-[:POINTS]->e
CREATE c-[:POINTS]->f
CREATE f-[:POINTS]->g
CREATE f-[:POINTS]->h
我试过这个:

MATCH (r) WHERE NOT ()-[:HAS_CHILD]->(r) RETURN r
i、 e.不是另一个节点的子节点的所有节点。然而,这带来了数千个结果;这是一个只有一个根的DAG

我拿了一个返回的节点,看了看它的邻居。它有父母和孩子,所以我的问题是错误的。但我不知道在哪里,为什么

我使用的是测试版neo4j-community-2.2.0-M03,所以不排除有bug。然而,所有这些都是通过Neo4j控制台实现的


非常感谢您的帮助-Christopher

我认为您很快就能找到没有内在关系的节点。您只需要将
not
括在括号中的where子句中

MATCH r-->() 
WHERE NOT ( ()-[:HAS_CHILD]->r ) 
RETURN r
更新答案。这是一个具有单个根节点的小有向无环图

CREATE (a:Node {name:'A'})
CREATE (b:Node {name:'B'})
CREATE (c:Node {name:'C'})
CREATE (d:Node {name:'D'})
CREATE (e:Node {name:'E'})
CREATE (f:Node {name:'F'})
CREATE (g:Node {name:'G'})
CREATE (h:Node {name:'H'})
CREATE a-[:POINTS]->b
CREATE a-[:POINTS]->c
CREATE c-[:POINTS]->d
CREATE c-[:POINTS]->e
CREATE c-[:POINTS]->f
CREATE f-[:POINTS]->g
CREATE f-[:POINTS]->h
当我用下面的查询查询它时,我只得到一个根。我也在使用社区2.2.0-M03

MATCH (r:Node)-->() 
WHERE NOT ( ()-->r ) 
RETURN r

感谢您的帮助,但这两个查询返回相同的results.np。我在答案中添加了一个有效的示例。你确定你的数据中只有一个根吗?再次感谢,我在你的例子上做了一些实验,结果让我惊讶。首先,我创建了示例树,将第一行粘贴到控制台中,然后粘贴其余的行。这不管用!您的查询没有返回任何数据,使用“匹配(a)返回a”显示灰色的未标记顶部节点和断开连接的“a”节点。然后,我删除了图形,并通过一次性粘贴整个示例重新创建。这确实起作用了,所有节点都按预期标记和连接,图形看起来不错,查询也起作用了。就像更新一样。我相信这是n4j中的一个bug,我怀疑这是导致我的大型网络出现问题的原因。我在这里提出了一个问题:。非常感谢你们的帮助。谢谢你们俩的帮助。