Neo4j 单一查询重构关系

Neo4j Single Query to Refactor Relationships To and From

我有 2 个节点,我想将所有 TO 和 FROM 关系移动到第二个节点。

//这适用于
匹配 (c)<-[r:HAS]-(f {name: 'ball(a)'}), (t {name: 'ball(b)'})
与 c、r、f、t
从(r, t)
呼叫apoc.refactor. YIELD 输入、输出
Returnc

//这适用于
匹配 (c)-[r:HAS]->(f {name: 'ball(a)'}), (t {name: 'ball(b)'})
与 c、r、f、t
CALL apoc.refactor.(r, t)
YIELD 输入、输出
Returnc

//这行不通
匹配 (c)-[r:HAS]->(f {name: 'ball(a)'})-[r2:HAS]->(d), (t {名称: 'ball(b)'})
与 c、r、f、t、r2、d
CALL apoc.refactor.(r, t)
(r2, t)
呼叫apoc.refactor. YIELD 输入、输出
Returnc

我收到错误:“查询中的过程调用不支持隐式命名结果”

如何在一个查询中重构 TO 和 FROM 关系?

请试试这个:

MATCH (c)-[r:HAS]->(f {name: 'ball(a)'})-[r2:HAS]->(d), (t {name: 'ball(b)'})
WITH c, r, t, r2, d
CALL apoc.refactor.to(r, t) 
YIELD input, output
WITH c, r2, t
CALL apoc.refactor.from(r2, t)
YIELD input, output
Return c

行号 3 是一个接受输入 r, t 并作为结果 returns input, output 的函数。在这个 return 中,您没有 r2 和 t,这就是您收到错误消息的原因。