在Cypher的现有关系中添加类型

时间:2017-05-27 18:07:46

标签: neo4j cypher relationships

是否可以在现有关系中添加和删除类型, 谁已经拥有类型?

我试过这个:

MATCH ()-[r:?:A]->()
REMOVE r:A
SET r:B
RETURN TYPE(r)
// -> :?:B

那不行。错误是:

Type mismatch: expected Node but was Relationship
"remove r:A" 
        ^

2 个答案:

答案 0 :(得分:2)

不,关系的类型是不可修改的,您需要删除该关系并创建一个新关系。

尽管如此,APOC Procedures有一些方便refactoring procedures用于执行此类重构操作,apoc.refactor.setType()应该是您需要的。

答案 1 :(得分:0)

这样的事可能有用:

MATCH (a)-[r:old]->(b) WITH a,r,b MERGE (a)-[:new]->(b) DELETE r;