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

如何在Cypher查询的WHERE子句中添加OR逻辑实现双向包含判断?

实现Cypher查询中的双向包含匹配逻辑

很简单,你只需要在any()函数的判断条件里用OR运算符把两个包含逻辑连接起来就行。这里要注意,如果value是你要传入的外部参数,记得加上美元符号$(比如$value);如果是固定字面量,直接写字符串即可。

修改后的完整查询语句如下:

MATCH (s:Product {id:'002'})-[r]->(o:Attributes) 
WHERE any(key in keys(o) WHERE key CONTAINS value OR value CONTAINS key)
RETURN s, r, o

额外补充说明:

  • 如果你原查询里的value其实是笔误,实际想指代Attributes节点中key对应的属性值,那需要把第二个条件调整为o[key] CONTAINS key,以此获取该键对应的属性值来做判断,语句会变成:
    MATCH (s:Product {id:'002'})-[r]->(o:Attributes) 
    WHERE any(key in keys(o) WHERE key CONTAINS o[key] OR o[key] CONTAINS key)
    RETURN s, r, o
    
  • any()函数会遍历目标节点的所有属性键,只要有任意一个键满足其中一个包含条件,这个节点就会被筛选出来。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:46:52