2015-10-20 125 views
0

Neo4j的匹配数组值我与此查询与节点属性

MATCH(u:User) WHERE ANY(name IN ['ACB','xYz'] WHERE u.first_name =~ "(?i).*name.*") RETURN u 

,它正在考虑(?i).*name.*为静态文本,而不是从name IN ['ACB','xYz']动态值尝试。

+0

是的,正则表达式是静态文本。 但在你的例子中,我认为你可以直接在正则表达式中添加“['ACB','xYz']”,这里不是动态的,对吧? – logisima

+0

@logisima它也是动态的。请求。现在只是为了完成工作,我遍历了整个数组,并添加了每个元素 ** ex的正则表达式。 search_param = search_param.map(函数(ele){0} {0} {0}返回'。*(?i)'+ ele +'。*' }); ** 但我不想遍历数组。 –

回答

0

您可以使用字符串连接组装一个正则表达式。然而,这种情况需要一些toString暗示:

MATCH(u:User) WHERE ANY(name IN ['ACB','xYz'] 
    WHERE u.first_name =~ toString("(?i).*" +name +".*")) 
RETURN u