Cypher Where Clause不工作

时间:2016-04-28 17:04:11

标签: neo4j cypher

使用下面的Cypher我试图获取所有未删除的区域及其项目。这里的问题是where子句似乎根本不起作用。它仍会返回所有区域,但其中一些区域已被删除。知道我错过了什么吗?

Match(n:Zone)
WITH n
WHERE NOT n.deleted in [NULL, 'false'] 
OPTIONAL Match(n)-[]-(items:Item) 
RETURN n, items;

使用版本2.3.1

1 个答案:

答案 0 :(得分:3)

我认为你不能使用IN谓词来处理空值。我认为你需要用(n.deleted = false or n.deleted is null)重新制作它。此外,重新排序WITH将限制从数据库返回的区域数量。

MATCH (n:Zone)
WHERE NOT coalesce(n.deleted, false) = false
WITH n
OPTIONAL MATCH (n)--(items:Item) 
RETURN n, items;