我无法找到改变Cypher关系类型的方法。这项操作是否可行?如果不是:实现这一结果的最佳方式是什么?
答案 0 :(得分:50)
不幸的是,目前还没有直接改变rel类型。
你可以这样做:
MATCH (n:User {name:"foo"})-[r:REL]->(m:User {name:"bar"})
CREATE (n)-[r2:NEWREL]->(m)
// copy properties, if necessary
SET r2 = r
WITH r
DELETE r
答案 1 :(得分:12)
Michael Hunger
的答案是正确的,但在此密码查询中仍需要with
。
如果要在一个密码查询中切换不同的操作,可以使用WITH
。
http://docs.neo4j.org/chunked/stable/query-with.html
MATCH (n:User {name:"foo"})-[r:REL]->(m:User {name:"bar"})
CREATE (n)-[r2:NEWREL]->(m)
SET r2 = r
WITH r
DELETE r
答案 2 :(得分:5)
你不能,关系的类型是组成的或必要的,而不是节点标签,它是任意包组节点。 (参见this q/a for an analogy。)您必须创建新关系,删除旧关系(如果有则复制属性)。
答案 3 :(得分:0)
修改时我使用以下内容。
match (from:Label1 { prop: 1 })-[r:RELATIONSHIP]->(to:Label2 { prop: 2 })
with from, r, to
create (from)-[:NEW_RELATIONSHIP]->(to)
with r
delete r
答案 4 :(得分:0)
我只是删除关系并创建一个新的关系:
MATCH (a) - [r:OLD_RELATION] -> (b)
DELETE r
CREATE (a) - [:NEW_RELATION] -> (b)
答案 5 :(得分:0)