You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Neo4j中ID为1的节点的关系复制到ID为2的节点?

如何复制Neo4j节点的所有关系到另一个节点?

我正在使用最新版Neo4j,想要将ID为1的节点的所有关系复制到ID为2的节点,编写的Cypher语句如下:

MATCH (n)-[r]->(m)
WHERE id(n) = 1
WITH r, m 
MATCH (synonym) 
WHERE id(synonym) = 2 
CREATE (synonym)-[???]->(m)

请问如何获取关系(r)的名称来替换语句中的???标记?


已解决方案

在Ashish Gupta的帮助下,问题已解决,最终可用的Cypher语句如下:

MATCH (n)-[r]->(m)
WHERE id(n) = 1
WITH type(r) AS relType, m 
MATCH (synonym) 
WHERE id(synonym) = 2 
CALL apoc.create.relationship(synonym, relType, {}, m) YIELD rel

关键说明:

  • 用type(r)函数可直接获取关系r的类型名称,将其赋值给relType变量
  • 由于Cypher原生CREATE语句不支持动态指定关系类型,需借助Neo4j的APOC扩展库中的apoc.create.relationship过程实现动态创建,该过程接受目标节点、关系类型、关系属性(示例中{}表示无属性)和关联节点作为参数

内容的提问来源于stack exchange,提问作者KhacNha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:40:55