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

RedisGraph中如何修改关系的关联节点并保留原有属性与ID

RedisGraph 修改关系指向的解决方案

RedisGraph 暂不支持直接修改已有关系的起始/目标节点,也没有内置类似 Neo4j APOC 的重构函数,可通过以下单条 Cypher 语句实现需求,全程自动处理属性复制、旧关系删除,不需要拆分事务:

// 匹配原有错误关系、付款人节点、正确的收款人节点
MATCH (bob:User {uid:1})-[old_p:Paid]->(:User {uid:2}), (john:User {uid:3})
// 创建指向正确收款人的新关系
CREATE (bob)-[new_p:Paid]->(john)
// 全量复制原有关系的所有自定义属性
SET new_p = old_p
// 可选:业务需要留存原关系ID时打开下面这行
// SET new_p.old_relation_id = id(old_p)
// 删除原有错误关系
DELETE old_p
// 可选返回结果校验
RETURN id(new_p) AS new_relation_id, new_p AS relation_detail
  • 上述语句的SET new_p = old_p语法会自动复制原有关系的所有自定义属性,不需要手动逐个赋值amount、date等字段
  • RedisGraph 的内部关系 ID 为系统自动分配,不支持手动指定,无法完全保留原有关系 ID,如有需要可按注释将旧 ID 存为新关系的自定义属性使用
  • 执行语句前请确保uid=3的 John 节点已经提前创建,否则匹配不到目标节点语句不会生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 01:06:00