查找未设置属性的 Neo4j 节点
Posted
技术标签:
【中文标题】查找未设置属性的 Neo4j 节点【英文标题】:Find Neo4j nodes where the property is not set 【发布时间】:2016-05-25 20:24:05 【问题描述】:使用 Cypher,如何找到不存在属性的节点?
例如,我有两个节点:
A = foo: true, name: 'A', B = name: 'B'
现在我想找到B,在没有设置foo
属性的基础上选择它。我该怎么做?
【问题讨论】:
【参考方案1】:MATCH (f) WHERE f.foo IS NULL RETURN f
【讨论】:
【参考方案2】:正如迈克尔·亨格所说
MATCH (n) WHERE NOT EXISTS(n.foo) RETURN n
在旧版本的 Neo4j 上,您可以使用 HAS:
# Causes error with later versions of Neo4j
MATCH (n) WHERE NOT HAS(n.foo) RETURN n
【讨论】:
使用NOT exists(n.foo)
以实现未来兼容性。
Has
不再受 Neo4j 支持并产生错误
您也可以使用 IS NULL 和 IS NOT NULL。例如 MATCH (n) WHERE n.foo IS NULL RETURN n以上是关于查找未设置属性的 Neo4j 节点的主要内容,如果未能解决你的问题,请参考以下文章