【发布时间】:2016-05-25 20:24:05
【问题描述】:
使用 Cypher,如何找到不存在属性的节点?
例如,我有两个节点:
A = {foo: true, name: 'A'}, B = { name: 'B'}
现在我想找到B,在没有设置foo属性的基础上选择它。我该怎么做?
【问题讨论】:
使用 Cypher,如何找到不存在属性的节点?
例如,我有两个节点:
A = {foo: true, name: 'A'}, B = { name: 'B'}
现在我想找到B,在没有设置foo属性的基础上选择它。我该怎么做?
【问题讨论】:
MATCH (f) WHERE f.foo IS NULL RETURN f
【讨论】:
正如迈克尔·亨格所说
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 支持并产生错误