我有这样的事情:
MATCH (a)-[rel]->(b), x
WHERE x.id = rel.allIds.contains(5)
RETURN x
其中rel.allIds是一个数字数组。
如何在cypher中创建包含查询?
注意:我正在使用Neo4j 2.1.5版本
答案 0 :(得分:0)
使用ANY
检查每个ID,看它是否相等。
MATCH (a)-[rel]->(b), x
WHERE has(x.id) and ANY(someid IN rel.allIds WHERE someid = x.id)
RETURN x
这会遍历rel.allIds
中的所有项目,将每个项目绑定到someid
,然后检查它是否与X的ID相同。
更广泛地说,您的匹配中的额外x
与图表中的任何内容相匹配。我猜你有一个非常小的图表,因为以这种方式匹配是非常低效的。您可能希望为该关系创建一个节点,然后将其链接到x,因为这不是您想要经常运行的查询。