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

请求编写Cypher查询:提取符合表达式的唯一匹配节点

解决方案

实现思路

先分别获取三个表达式匹配到的节点集合,筛选出其中恰好包含1个节点的集合,最后判断:如果这类集合仅有一个,就返回对应的节点;否则返回null。

Cypher 查询代码

// 收集三个表达式各自匹配的节点集合
MATCH (n) WHERE n.p1 = 1 WITH collect(n) AS exp1Nodes
MATCH (n) WHERE n.p2 = 2 OR n.p3 = 3 WITH exp1Nodes, collect(n) AS exp2Nodes
MATCH (n) WHERE n.p4 = 4 AND n.p5 = 5 WITH exp1Nodes, exp2Nodes, collect(n) AS exp3Nodes

// 筛选出恰好匹配1个节点的结果集合
WITH [
  nodes IN [exp1Nodes, exp2Nodes, exp3Nodes] 
  WHERE size(nodes) = 1
] AS validResults

// 根据规则返回最终结果
RETURN 
  CASE 
    WHEN size(validResults) = 1 THEN validResults[0][0]
    ELSE null
  END AS resultNode

代码说明

  • 三次MATCH操作分别收集三个表达式的匹配节点,存入对应的集合变量;
  • 通过列表推导式筛选出长度为1的集合,得到validResults;
  • 最后用CASE分支判断:若validResults仅含一个元素(即恰好一个表达式匹配到1个节点),则取出该节点,否则返回null。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:32:00