我有一个Neo4j数据库(2.0.3)。我目前正在使用Cypher在我的数据集上运行一些测试查询。我有一组记录,其中有一个包含名称数组的属性。我希望能够搜索这个数组的名称,同时也使用一个基本reg这样做。这在赛弗里面有可能吗?如果不是,你还记得如何推荐这方面的进展呢?
将这两个查询结合在一起的内容:
MATCH (s:Record) WHERE "John" IN s.name RETURN s;
MATCH (s:Record) WHERE s.name =~ '(?i).*john.*)' RETURN s;
发布于 2014-07-09 04:41:02
考虑以下示例数据:
CREATE (:Record {name: ['John', 'Bob']}),
(:Record {name: ['Alice', 'Johnny']}),
(:Record {name: ['the johnster', 'Charles']}),
(:Record {name: ['Danny', 'Josh']})
如果要查找属性数组name
中的任何元素与regexp匹配的所有记录,请使用ANY
。如果要查找属性数组name
中所有元素与regexp匹配的所有记录,请使用ALL
。我相信你想要前者:
MATCH (s:Record)
WHERE ANY(name IN s.name WHERE name =~ '(?i).*john.*')
RETURN s.name
这将返回:
s.name
John, Bob
Alice, Johnny
the johnster, Charles
https://stackoverflow.com/questions/24638925
复制相似问题