neo4j-不将关系链接到已创建的节点

时间:2018-08-22 08:01:58

标签: neo4j

我正在使用Neo4j Server版本:3.4.4(企业版)和Neo4j Browser版本:3.2.5。

当我运行这些命令时:

create (a:DVK {Naam : 'A'}) -[:IS_PROJECT_FOR]->(:DVL {Naam : 'C'})
create (a) -[:IS_PROJECT_FOR]->(:DVL {Naam : 'B'})

我创建了4个节点:A,B,C和另一个节点,以及2个关系。我原本希望有3个节点:具有2个关系的A,B,C。

您能告诉我我在做什么错,并建议如何解决此问题吗?

1 个答案:

答案 0 :(得分:0)

根据对主要问题的评论,您似乎分别执行了每个查询,而不是在单个查询中一起执行。

请记住,变量没有保存到数据库中,仅在单个查询期间存在(如果由于未包含在查询的WITH子句中而超出范围,有时会更少)。

因此,对于第二个查询:

create (a) -[:IS_PROJECT_FOR]->(:DVL {Naam : 'B'})

执行此操作时,没有任何内容,因此此处的a在上一个查询中未引用a变量。相反,由于这是a在查询中的首次使用,因此它将绑定到新创建的空白节点(没有标签,没有属性),并且将使用提供的属性创建:DVL节点,然后在它们之间添加:IS_PROJECT_FOR关系。

如果在同一个查询中执行了两个创建操作,则第一个创建操作中的a仍将在范围内,而执行第二个创建操作时将使用该节点。