neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
neo4j
的节点或者关系里面,可以是简单的文字描述,但是也可以添加各种属性。并且,对于同样类似的节点,彼此之间的属性归属还可以不一致,这样就像是对json
的描述一样,可以随意添加。那么,如何判断某个属性是否存在呢?这就是本文要表述的内容。
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述neo4j
图数据库的属性查询。本文测试环境:win10
,neo4j社区版@4.4.6
,java@11.0.14
。本文说的是属性,包括节点属性,也包括关系属性。
龙套数据
龙套数据依然是neo4j
自带的movie
例子,每个person
类型节点都自带born
属性。为了测试方便,这里对数据进行了部分处理。
添加一个born
属性为空的Person
:
create (n:Person{name:'sunan',born:''});
MATCH (n:Person) RETURN n
那么,类型为Person
的节点就是134个,其中:
- 默认没有
born
属性的节点是5个。 - 有
born
节点,但是为空字符串的节点是1个。
属性是否存在【不推荐exist】
传统的cypher
写法,是使用exists
函数。但是,系统提示:是个准备废弃的函数。
属性存在:
match (x:Person) where exists (x.born) return x
属性不存在:
match (x:Person) where not exists (x.born) return x
属性是否存在【推荐is null】
属性存在:
match (x) where x.born is not null return x
属性不存在:
match (x) where x.born is null return x
属性是否是空字符串判断
match (x:Person{born:''}) return x
match (x:Person) where x.born='' return x
match (x:Person) where x.born<>'' return x
相关文章
综述
更多neo4j
经验文章,请点击下面的链接查看:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。