查找未设置属性的 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 节点的主要内容,如果未能解决你的问题,请参考以下文章

为neo4j中的每个节点设置一个属性

neo4j草文件?尝试从属性设置节点大小

neo4j的UI节点和边的颜色、大小更新

Neo4j - 将节点标题设置为 Web 界面中的标签

Neo4j学习笔记——数据索引

Neo4j 第二篇:图形数据库