首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有正则表达式的Neo4j Cypher查询属性数组

带有正则表达式的Neo4j Cypher查询属性数组
EN

Stack Overflow用户
提问于 2014-07-08 18:13:25
回答 1查看 1.4K关注 0票数 5

我有一个Neo4j数据库(2.0.3)。我目前正在使用Cypher在我的数据集上运行一些测试查询。我有一组记录,其中有一个包含名称数组的属性。我希望能够搜索这个数组的名称,同时也使用一个基本reg这样做。这在赛弗里面有可能吗?如果不是,你还记得如何推荐这方面的进展呢?

将这两个查询结合在一起的内容:

代码语言:javascript
运行
复制
 MATCH (s:Record) WHERE "John" IN s.name RETURN s;
 MATCH (s:Record) WHERE s.name =~ '(?i).*john.*)' RETURN s;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 04:41:02

考虑以下示例数据:

代码语言:javascript
运行
复制
CREATE (:Record {name: ['John', 'Bob']}),
       (:Record {name: ['Alice', 'Johnny']}),
       (:Record {name: ['the johnster', 'Charles']}),
       (:Record {name: ['Danny', 'Josh']})

如果要查找属性数组name中的任何元素与regexp匹配的所有记录,请使用ANY。如果要查找属性数组name中所有元素与regexp匹配的所有记录,请使用ALL。我相信你想要前者:

代码语言:javascript
运行
复制
MATCH (s:Record)
WHERE ANY(name IN s.name WHERE name =~ '(?i).*john.*')
RETURN s.name

这将返回:

代码语言:javascript
运行
复制
s.name
John, Bob
Alice, Johnny
the johnster, Charles
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24638925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档