将类型添加到与 Cypher 的现有关系中

Adding type to existing relationship with Cypher

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

我试过这个:

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

那行不通。错误是:

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

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

也就是说,APOC Procedures has some handy refactoring procedures执行这种重构操作,apoc.refactor.setType()应该是你需要的。

类似这样的方法可能有效:

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