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

时间:2015-03-23 08:32:23

标签: 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

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

证明
MATCH (n) WHERE id(n) = 4 RETURN n

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

MATCH (n) WHERE id(n) = 4 RETURN n.name

返回null

如何匹配所有 具有name属性的节点?

2 个答案:

答案 0 :(得分:4)

HAS功能:

MATCH (n) WHERE not has(n.name) RETURN n

答案 1 :(得分:3)

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

MATCH (n) WHERE NOT EXISTS(n.name) RETURN n

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