匹配到要删除的节点,使用REMOVE 删除要删除的标签,再设置新的标签即可 像这样:
MATCH (n:OLD_LABEL) REMOVE n:OLD_LABEL SET n:NEW_LABEL例如:
MATCH (n:User:Teacher) REMOVE n:Student RETURN n还有一种存储过程的.我并没有尝试 参考: http://neo4j.com.cn/topic/5b9647e8bdb1ecde08de8fb8 apoc.periodic.iterate如何set label 更改节点标签 发布于 1 年前 作者 stringso 1133 次浏览 来自 问答 如下,加上set n:row.label_type 这句就会报错 CALL apoc.periodic.iterate(‘with "select * from tables limit 10 " as sql call apoc.load.jdbcParams(“jdbc:mysql://xxxx:3306/xx?user=xx&password=xx”, sql, []) yield row return row’,’ MERGE (n:xx {id:row.id}) set n:row.label_type,n.name=row.namet’,{batchSize:10000,iterateList:true})
修改关系不能像节点这样直接修改,也不能通过type()函数修改,所以需要将旧的关系删除,添加新的关系,复制属性. 如下:
MATCH (n)-[r:OLD_RELATION]->(m) CREATE (n)-[r2:NEW_RELATION]->(m) SET r2 = r // 这里是复制属性 WITH r DELETE r