neo4j图数据库,如何更新一个节点或一个关系的信息?
发布于 作者:苏南大叔 来源:程序如此灵动~
继续苏南大叔的neo4j
图数据库系列教程,本文讲述CRUD
的U
,也就是更新数据库里面的数据。对于neo4j
图数据库来说,那就是更新节点标签,更新节点属性,更新关系,更新关系类型,更新关系属性。当然,鉴于关系必须基于两个节点的特殊性,这里还有特殊的更新方法。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的故事。本文讲述如何更新图形数据库的节点及关系数据。本文测试环境:win10
,neo4j@4.4.5
。
对数据的更新,是建立在合理的match
语句的基础上的。所以,本文的前置阅读文章是:
更新节点标签
添加新的标签:
match(n:Person) set n:Human
替换标签:
match(n:Human) set n:人类 remove n:Human
match(n:Person) remove n:人类
更新节点属性
节点添加/修改属性
Match(n:Person{name:'sunan'}) set n.name='sunan',n.born=2000,n.live='北京'
节点删除属性
Match(n:Person{name:'sunan'}) remove n.born return n
节点属性更名
Match(n:Person{name:'sunan'}) set n.生活在=n.live remove n.live return n
建立新的关系
两个节点之间可以有多条关系
MATCH (a),(b) WHERE a.name="sunan" AND b.title="The Matrix" CREATE (a) -[r:Watch {count: 1}]-> (b) return r;
match (n:Person{name:'sunan'})-[r]->(m:Movie{title:'The Matrix'}) return type(r);
更新或添加关系属性
match (n:Person{name:'sunan'})-[r]->(m:Movie{title:'The Matrix'}) set r.aa="aaa" return r,type(r)
删除关系属性
match (n:Person{name:'sunan'})-[r]->(m:Movie{title:'The Matrix'})
remove r.aa
return r,type(r)
更新关系类型
伪命题,建立关系必须有标签,查询的时候可以不带。标签只能整条带属性删除,然后新建一个新的关系和它的属性。
MATCH (n:Person{name:'sunan'})-[r:Watch]->(m:Movie{title:'The Matrix'})
CREATE (n)-[r2:Learn]->(m)
SET r2 = r
WITH r
DELETE r
这条是把Watch
类型变成了Learn
类型,然后属性被复制了过来。
参考文献
综述
图数据库的数据更新部分就这么讲述完了,更多精彩文章内容,请点击苏南大叔的博客文章:


