2015-01-21 99 views
1

我创建了一些名为color的属性。我还没有为此属性分配任何值。 现在我想编写一个查询来获取所有具有此属性“NULL”的节点。如何根据属性值在neo4j中获取节点

我的查询是这样的:

MATCH (n:Image) WHERE n.color='' RETURN n 

但这没有返回。我如何获得属于该标签的所有节点:图像并具有以下属性:颜色为空?

我还没有运气尝试这样做:

MATCH (n:Image) WHERE n.color IS NULL RETURN n 

感谢 D.

回答

5

空是不是有效的属性值 - 如果值未分配,或明确指定为空,则该属性在节点上不存在。

您可以使用

MATCH (n:Image) where not(has(n.color)) return n 

,以检查节点上是否存在财产或干脆

MATCH (n:Image) where n.color IS NULL 

基于下面的评论,一个空字符串不一样,缺少的属性/空值。

+0

感谢您的回答。我可能在这里犯了一个错误。当我创建节点时,我这样做:CREATE(n:Image {Color:'',Path:'pic.jpg'})现在我明白在这种情况下Color不是真的。对?我怎样才能创建与颜色属性为空的节点? – user1919 2015-01-21 09:43:44

+0

这是不同的 - id属性存储在具有空字符串值的节点上。在这种情况下匹配(n:Image),其中n.id =''返回n将返回这些节点。空字符串值存储,缺失/空值不是 – Luanne 2015-01-21 09:47:31

+0

这实际上工作!我一直忘记neo4j的大小写敏感的东西。感谢您及时的回复。 – user1919 2015-01-21 09:52:25

相关问题