Cypher 查询所有缺少某个属性的节点

Tom*_*han 2 neo4j cypher

我有一个Neo4j数据库,里面有一些数据。大多数节点都有一个name属性,但不是全部;我想构建一个 Cypher 查询来匹配并返回所有不匹配的查询。

我已经尝试了以下所有方法,但都给出了 0 个结果:

MATCH (n { name: NULL }) RETURN n
MATCH (n { name: null }) RETURN n
MATCH (n) WHERE n.name = NULL RETURN n
MATCH (n) WHERE n.name = null RETURN n
Run Code Online (Sandbox Code Playgroud)

但是,我至少有一个没有name指定属性的节点,我可以通过

MATCH (n) WHERE id(n) = 4 RETURN n
Run Code Online (Sandbox Code Playgroud)

并检查结果视图中的节点,或者注意到

MATCH (n) WHERE id(n) = 4 RETURN n.name
Run Code Online (Sandbox Code Playgroud)

返回null

如何匹配所有的节点 具有name财产?

Mic*_*ack 6

EXISTS()已替换,HAS()因此您的查询现在看起来像:

MATCH (n) WHERE NOT EXISTS(n.name) RETURN n
Run Code Online (Sandbox Code Playgroud)

https://neo4j.com/docs/cypher-refcard/current/