neo4j图数据库,如何cypher查询标签/类型/属性等信息?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在neo4j
图数据库中,是由节点和关系所组成的。这些信息又是由节点标签、关系类型、属性等信息所组成的,并且这些最基本的部分在neo4j
中,被归类于schema
。在neo4j browser
左侧中是被特殊列出的信息,在前些篇的文章中,苏南大叔对这些左侧列出的信息有所说明。本文是从代码角度来总结说明这些信息的,仅供参考。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里介绍苏南大叔和计算机代码的故事。本文介绍使用cypher
获得标签、类型、属性等信息,因为使用语句的话,返回的是纯正的数据。这对于程序员来说,是最安心可控的。通过对这些schema
信息的观察,可以对整个图有所概况上的了解。本文测试环境:win10
,neo4j@4.4.5
。
本文前置阅读文章链接地址:
直观观察一个图
拿到新的图,里面有啥节点,有啥关系?大概的关联情况是什么样的?估计新人都会有这样类似的疑惑。在neo4j browser
里面,并不像phpmyadmin
一样,可以直观的对数据有所掌控。所以,这种直观傻瓜式的可视化介绍,获得比较有用的信息。
call db.schema.visualization
这条语句可以画出关系图,直观明了介绍当前的图。
获得所有节点标签
match (n) return labels(n)
match (n) return distinct(labels(n))
call db.labels
获得所有关系类型
match (n)-[r]->(m) return distinct type(r)
call db.relationshipTypes
获得所有节点属性
match (n) unwind keys(n) as allkeys return distinct allkeys
match (n) return distinct keys(n)
match (n:Person) return distinct keys(n)
keys
是属性的键,properties
是属性,是键+值,unwind keys(n)
作用是把key
的数组给打散开。
match (n) return distinct properties(n)
match (n)-[r]->(m) return distinct properties(n)
match (n)-[r]->(m) return distinct properties(m)
上述三个语句的结果可是不一样的,第一条语句是所有的节点,第二条语句是所有的person
,第三条语句是全部的movie
和小部分的person
。
获得所有关系属性
match (n)-[r]->(m) return properties(r)
还是那句话,keys
是属性的键,所以,两者不一样。
match (n)-[r]->(m) return distinct keys(r)
match (n)-[r]->(m) unwind keys(r) as allkeys return distinct allkeys
参考文献
- https://newsn.net/say/neo4j-schema.html
- https://newsn.net/say/neo4j-match-node.html
- https://newsn.net/say/neo4j-match-relationship.html
综述
获得节点标签和关系类型后,就可以比较自信的写相关语句了。再通过对节点或关系的属性进行分析,就可以更加稳妥的全局把控了。更多苏南大叔的cypher
相关文章,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。