Neo4j:Merge【不存在则创建,已存在可修改】

MATCH (person:Person)   //遍历所有 Person
MERGE (city:City { name: person.bornIn }) //如果不存在 出生地的城市,则创建
MERGE (person)-[r:BORN_IN]->(city)  //如果不存在关系则创建
RETURN person.name, person.bornIn, city
MERGE (keanu:Person { name: 'Keanu Reeves' })
ON CREATE SET keanu.created = timestamp()  //不存在时执行
ON MATCH SET keanu.lastSeen = timestamp()  //已存在时执行
RETURN keanu.name, keanu.created, keanu.lastSeen
match (a),(b) where id(a)=25 and id(b)=8  
merge (a)-[r:gogogo]->(b) //如果不存在 gogogo 关系则创建
on create set r.w = 1   //当关系不存在新增关系时,增加或修改其属性
on match set r.w = 100  //当关系已存在时,增加或修改其属性
return a,b,r
match (a),(b) where id(a)=25 and id(b)=8  
merge (a)-[r:gogogo]->(b) //如果不存在 gogogo 关系则创建
on create set r.w = 1   //当关系不存在时,新增关系时,增加或修改其属性
on match set r.w = coalesce(r.w, 0) + 1  //当关系已存在时,增加或修改其属性
return a,b,r



参考资料:
官网:merge

你可能感兴趣的:(Neo4J,Neo4j,Merge)