使用下面的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
答案 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;