我有一组我想要"替换"的关系,即创建一个新关系,然后删除旧关系,因为关系是不可变的.
我最初假设这个:
MATCH paths=()-[:BRANCH]-()
FOREACH (old in relationships(paths) |
WITH startNode(old) as n1, endNode(old) as n2
MERGE (n1)-[new:CONTAINS]-(n2)
SET new = old
DELETE r
)
Run Code Online (Sandbox Code Playgroud)
但WITH关键字是不允许的,必须能够弄清楚如何将本地变量分配给起始节点和结束节点.
您可以再次使用FOREACH来破解WITH,例如:
FOREACH (n1 in [startNode(old)]| ... // you now have an identifier n1 referring to startNode(old)
Run Code Online (Sandbox Code Playgroud)
如果这只是长度为1的路径,我不确定我是否看到了这样做的价值.你不能这样做:
MATCH (n1)-[old:BRANCH]->(n2)
CREATE (n1)-[new:CONTAINS]->(n2)
DELETE old
Run Code Online (Sandbox Code Playgroud)