假设我有一个带有命名节点的数据库,并且该数据库为空或具有以下内容:
我现在需要一个neo4j语句,如果它在数据库中已经不存在,那么它将完全插入该树结构。
对于简单的节点对合并,我可以使用像
这样的东西MERGE ({name: 'A'})-[:R1]->({name: 'B'})
但我想要树结构。如何在此处添加C
?
答案 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
。