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

如何合并两个Cypher查询,实现关联节点子集校验并获取目标节点

单条Cypher查询实现方案

直接使用以下语句即可实现需求:

MATCH (r:R)--(a:A)
WITH collect(DISTINCT a.Id) AS r_linked_a_ids
MATCH (b:B)
OPTIONAL MATCH (b)--(a:A)
WITH b.Id AS b_id, collect(DISTINCT a.Id) AS b_linked_a_ids, r_linked_a_ids
WHERE all(a_id IN b_linked_a_ids WHERE a_id IN r_linked_a_ids)
RETURN b_id

逻辑说明

  • 第一步先查询所有和蓝色R节点关联的红色A节点ID,去重后存入集合r_linked_a_ids
  • 遍历所有棕色B节点,可选匹配每个B关联的A节点,把每个B对应的关联A节点ID去重后存入集合b_linked_a_ids
  • 用all()函数做子集校验:如果B关联的所有A ID都存在于r_linked_a_ids中,则满足条件。无关联A的B节点对应的b_linked_a_ids是空集,天然符合子集要求,会被正常返回
  • 最终返回的b_id就是符合条件的棕色节点ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:02