使用下面的Cypher,我试图获取所有未删除的Zones及其项目。这里的问题是where子句似乎根本不起作用。它仍然返回所有区域,尽管其中一些区域已被删除。知道我缺了什么吗?
Match(n:Zone)
WITH n
WHERE NOT n.deleted in [NULL, 'false']
OPTIONAL Match(n)-[]-(items:Item)
RETURN n, items;
使用2.3.1版
我认为不能用IN
谓词处理null。我认为你需要用(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;