如何合并neo4j中的树

时间:2018-02-12 17:13:36

标签: neo4j graph-databases

假设我有一个带有命名节点的数据库,并且该数据库为空或具有以下内容:

enter image description here

我现在需要一个neo4j语句,如果它在数据库中已经不存在,那么它将完全插入该树结构。

对于简单的节点对合并,我可以使用像

这样的东西
MERGE ({name: 'A'})-[:R1]->({name: 'B'})

但我想要树结构。如何在此处添加C

1 个答案:

答案 0 :(得分:0)

首先,您必须在树节点上添加标签(在上面的示例中为Tree),并在name属性上创建一个唯一约束,如下所示:

CREATE CONSTRAINT ON (n:Tree) ASSERT n.name IS UNIQUE;

然后您可以使用此脚本创建C节点,其他节点不存在:

MERGE (a:Tree {name: 'A'})
MERGE (b:Tree {name: 'B'})
MERGE (c:Tree {name: 'C'})
MERGE (a)-[:R1]->(b)
MERGE (a)-[:R2]->(c);

正如您所看到的,每个节点必须使用一个MERGE,然后每个关系使用一个MERGE