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,这就是您收到错误消息的原因。
我有 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,这就是您收到错误消息的原因。