neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在?
发布于 作者:苏南大叔 来源:程序如此灵动~
neo4j的节点或者关系里面,可以是简单的文字描述,但是也可以添加各种属性。并且,对于同样类似的节点,彼此之间的属性归属还可以不一致,这样就像是对json的描述一样,可以随意添加。那么,如何判断某个属性是否存在呢?这就是本文要表述的内容。
![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 属性是否存在hero 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 属性是否存在hero](/usr/img/water/9f/9f8977676e610201.png)
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述neo4j图数据库的属性查询。本文测试环境:win10,neo4j社区版@4.4.6,java@11.0.14。本文说的是属性,包括节点属性,也包括关系属性。
龙套数据
龙套数据依然是neo4j自带的movie例子,每个person类型节点都自带born属性。为了测试方便,这里对数据进行了部分处理。
添加一个born属性为空的Person:
create (n:Person{name:'sunan',born:''});![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 空字符串属性 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 空字符串属性](/usr/img/water/53/53063e4a0c563644.png)
MATCH (n:Person) RETURN n![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 总节点数 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 总节点数](/usr/img/water/22/221376575f69991f.png)
那么,类型为Person的节点就是134个,其中:
- 默认没有
born属性的节点是5个。 - 有
born节点,但是为空字符串的节点是1个。
![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 默认没有born属性的节点 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 默认没有born属性的节点](/usr/img/water/69/69a3a64262279f29.png)
属性是否存在【不推荐exist】
传统的cypher写法,是使用exists函数。但是,系统提示:是个准备废弃的函数。
![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 废弃的属性 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 废弃的属性](/usr/img/water/fd/fd556ea5b8f9fc86.png)
属性存在:
match (x:Person) where exists (x.born) return x![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - exists函数 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - exists函数](/usr/img/water/a5/a5fb4d0edb650c35.png)
属性不存在:
match (x:Person) where not exists (x.born) return x![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 属性不存在 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 属性不存在](/usr/img/water/11/11b03564d92bac06.png)
属性是否存在【推荐is null】
属性存在:
match (x) where x.born is not null return x![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - exists函数2 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - exists函数2](/usr/img/water/27/27141018a7a588ca.png)
属性不存在:
match (x) where x.born is null return x![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 属性不存在2 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 属性不存在2](/usr/img/water/13/13809a8f9c211d88.png)
属性是否是空字符串判断
match (x:Person{born:''}) return xmatch (x:Person) where x.born='' return x![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 查询空字符串属性 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 查询空字符串属性](/usr/img/water/d2/d2e68855a53be9d8.png)
match (x:Person) where x.born<>'' return x![解决了问题,节约了时间!我要为苏南大叔买瓶饮料! - 属性不为空字符串的节点 苏南大叔:neo4j图数据库,如何查询[节点属性]或[关系属性]是否存在? - 属性不为空字符串的节点](/usr/img/water/c5/c516ee4c228f4ab3.png)
相关文章
综述
更多neo4j经验文章,请点击下面的链接查看: