Cypher查询以检查list1是否包含list2中的任何项目

时间:2016-09-05 09:20:55

标签: neo4j cypher

我的数据库中的每个节点都有一个包含列表的属性。我需要检查给定列表中的任何项目是否属于该属性。

我正在寻找像match (n) where any(x in n.list where x=[101,102,103]) return n这样的查询 - 这意味着“检查n.list是否包含101,102,103。如果是,请返回n”

cypher中有类似的内容吗?

1 个答案:

答案 0 :(得分:10)

你几乎可以回答你的问题!

检查:https://neo4j.com/docs/developer-manual/3.0/cypher/functions/predicate/#functions-any,任何谓词都存在。

您的查询中唯一的错误是x=[101,102,103],您应该按x IN [101,102,103]

进行更改

所以最后的查询是:

MATCH (n) 
WHERE any(x IN n.list WHERE x IN [101,102,103])
RETURN n