使用Cypher,如何查找属性不存在的节点?
例如,我有两个节点:
例如,我有两个节点:
A = {foo: true, name: 'A'}, B = { name: 'B'}
现在我想找到B,根据未设置foo
属性进行选择。我该怎么做?
正如Michael Hunger所提到的
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
EXISTS
已经被弃用,你应该使用IS NOT NULL
代替。因此,对于问题中的示例,你的查询现在应该是:MATCH (n) WHERE n.foo IS NULL RETURN n
MATCH (f) WHERE f.foo IS NULL RETURN f
NOT exists(n.foo)
。 - Michael Hunger