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

如何在Cypher中通过正则匹配属性名筛选满足值条件的节点?

解决Cypher中按属性名正则匹配并筛选属性值的问题

要实现筛选出包含以SomeProperty开头的属性且该属性值大于10的节点,你需要借助properties()相关函数获取节点的所有属性信息,再通过遍历和正则匹配完成筛选,具体写法如下:

MATCH (n)
WHERE ANY (kv IN keys(n) WHERE kv =~ '^SomeProperty.*' AND n[kv] > 10)
RETURN n;

代码说明:

  • keys(n):获取节点n的所有属性名列表
  • kv =~ '^SomeProperty.*':用正则匹配属性名,^限定匹配开头,.*匹配任意后续字符,确保只选中以SomeProperty开头的属性名
  • n[kv] > 10:通过属性名变量kv获取对应属性值,判断是否大于10
  • ANY(...):只要节点存在至少一个满足条件的属性,就返回该节点

如果需要同时返回符合条件的属性名和属性值(而非仅节点),可以用以下查询:

MATCH (n)
UNWIND keys(n) AS kv
WHERE kv =~ '^SomeProperty.*' AND n[kv] > 10
RETURN n, kv AS matchingProperty, n[kv] AS propertyValue;

内容的提问来源于stack exchange,提问作者L.Rex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:21:49