Cypher Where子句无效



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

相关内容

最新更新