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

如何在Neo4j图查询中匹配属性值中的方括号

问题原因

你的code属性为List<String>(字符串数组)类型,并非普通字符串类型:

  • 你在属性预览中看到的"code": ["DAF AR Index"]里的方括号是JSON序列化时标记数组结构的语法,并不是code属性值本身包含的字符,属性实际存储的是一个长度为1的字符串数组,数组内唯一的元素是DAF AR Index。
  • CONTAINS关键字、正则匹配符=~都仅作用于字符串类型数据,直接对数组使用这两个操作会直接返回false,因此无法命中目标节点。
解决方案

根据匹配需求选择对应写法即可:

匹配数组内的元素符合规则

如果需要判断数组中任意一个元素满足包含规则/正则规则,使用ANY列表迭代函数实现:

  • 匹配code数组中存在元素包含DAF AR关键词:
MATCH (n:GenericProduct)
WHERE ANY(item IN n.code WHERE item CONTAINS 'DAF AR')
RETURN n;
  • 匹配code数组中存在元素符合正则规则:
MATCH (n:GenericProduct)
WHERE ANY(item IN n.code WHERE item =~ 'DAF.*Index')
RETURN n;

将整个数组转为字符串后匹配

如果确实需要对数组的序列化结果做匹配,先将数组转为字符串再执行匹配操作:

MATCH (n:GenericProduct)
WHERE toString(n.code) CONTAINS '['
RETURN n;

低版本Neo4j内置toString不支持数组转换的话,可安装APOC插件后调用apoc.convert.toString(n.code)实现转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:48:01