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

如何在APOC触发器中获取被删除关系连接的节点?

解决APOC触发器中获取被删除关系两端节点的问题

你当前代码里用MATCH (m)-[deletedRel]->(n)无法匹配结果,核心原因是在before阶段,待删除的关系已经从图中标记移除,常规MATCH语句无法再通过关系关联到节点。正确做法是直接通过APOC函数从已转换的关系对象中提取两端节点。

修改后的完整代码如下:

CALL apoc.trigger.add('myTrigger',
"UNWIND $deletedRelationships as deletedRel
WITH apoc.trigger.toRelationship(deletedRel, $removedRelationshipProperties) AS deletedRel
WITH deletedRel WHERE apoc.rel.type(deletedRel) = 'MY_REL_TYPE'
// 直接从关系对象中提取起始、结束节点
WITH deletedRel, apoc.rel.startNode(deletedRel) AS m, apoc.rel.endNode(deletedRel) AS n
CREATE (r:Report {myId: id(deletedRel), type: apoc.rel.type(deletedRel)})" ,
{phase:'before'})

关键说明:

  • apoc.rel.startNode(deletedRel):获取被删除关系的起始节点(对应原语句中的m)
  • apoc.rel.endNode(deletedRel):获取被删除关系的结束节点(对应原语句中的n)

这种方式不需要依赖图中的关系匹配,直接从内存中的关系对象提取节点,能在before阶段准确获取到目标节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:30:55