我试图使一个数据库,每当一个节点不存在,它将创建一个新的,并设置一个关系,这个节点和另一个。如果节点存在,两个节点得到一个关系。
我的问题是,如果我尝试连接2个现有节点,第二个节点将被重新创建。我尝试了合并和创建唯一,两者都不起作用。
我的示例代码:
CREATE (test1 name:'1'})
MATCH (n)
WHERE n.name = '1'
MERGE (n)-[:know {r:'123'}]->(test3 {name:'3'})
MATCH (n)
WHERE n.name = '1'
MERGE (n)-[:know {r:'123'}]->(test2 {name:'2'})
直到这里它的工作,但与:
MATCH (n)
WHERE n.name = '3'
MERGE (n)-[:know {r:'123'}]->(test2 {name:'2'})
它创建新的节点“2”而不是连接到一个exist。
1条答案
按热度按时间c0vxltue1#
MERGE (n)-[:know {r:'123'}]->(test2 {name:'2'})
将尝试匹配整个模式,由于该模式不存在,它将创建一个模式。您可以做的是: