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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值