将类型添加到与 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;
是否可以为现有关系添加和删除类型, 谁已经拥有类型?
我试过这个:
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;