python通過py2neo模塊操作Neo4j圖數(shù)據(jù)庫

本篇文章主要內(nèi)容是要將在Neo4j圖形界面中操作的Cypher?Query?Language對應到python代碼中去。

了解py2neo的簡單操作請參考文章:使用py2neo模塊,python操作Neo4j 圖數(shù)據(jù)庫?

安裝py2neo版本4,py2neo使用說明參考:https://py2neo.org/v4/

Neo4j?Cypher?Query?Language請參考文章:《一》、《二》、《三》

主要內(nèi)容包括:

****注:graph=Graph(host='localhost', author=('你的數(shù)據(jù)庫名','連接數(shù)據(jù)庫的密碼')? eg:graph=Graph(host='localhost', author=('neo4j','neo4j'))

1.Neo4j?CQL -?CREATE命令? <=====>? graph.create(node)#創(chuàng)建節(jié)點

2.Neo4j?CQL -?MATCH命令? <=====>? graph.run(MATCH命令)#查找

3.py2neo --- Node Matching

4.py2neo ---?Relationship?Matching

py2neo:




1.Neo4j?CQL -?CREATE命令? <=====>?graph.create(node)#創(chuàng)建節(jié)點

Neo4j CQL:? ?CREATE(c:Test_Class {name:"姚明董事長",id:"001",age:65,location:"上海"}) RETURN c
創(chuàng)建節(jié)點:? ??node=Node("Test_Class",name='姚明董事長',id='0001',age=65,location='上海')? ?graph.create(node)
在localhost頁面,能找到剛剛創(chuàng)建的節(jié)點


2.Neo4j?CQL -?MATCH命令? <=====> graph.nodes.match(...).first()

查找節(jié)點

1.通過調(diào)用graph.nodes來查找
2.通過run方法,直接執(zhí)行Neo4j?CQL語句
2.graph.run("Neo4j Cphyer Query Language").data()?輸出格式
3.通過run方法,直接執(zhí)行Neo4j?CQL語句
3.graph.run("Neo4j Cypher Query Language").to_data_frame()?輸出格式

3.py2neo --- Node Matching:

通過標簽和屬性簡單查找:NodeMatcher(graph).match()

通過NodeMatch.where()進行復雜查找:查找名字以“姚”開頭的所有節(jié)點

通過where設置過濾條件
通過where設置過濾條件、排序、返回限定數(shù)量節(jié)點
通過len()方法,統(tǒng)計查找到節(jié)點的個數(shù)

4.py2neo ---?Relationship?Matching:

RelationshipMatcher(graph).match() 查找所有關(guān)系

查找所有關(guān)系

RelationshipMatcher(graph).match(r_type='關(guān)系名') 通過r_type確定關(guān)系名

語法:match(nodes=None,?r_type=None,?**properties)

通過r_type限定關(guān)系名??

RelationshipMatcher(graph).match().order_by().limit()? ?匹配、排序、限定返回次數(shù)

語法:match.order_by("_.weight", "max(_.a, _.b)")



添加:2018-12-26問題:如何利用頭尾節(jié)點名和關(guān)系名來查找neo4j中是否存在節(jié)點所對應的關(guān)系???

以下圖為例:創(chuàng)建一些BaiduBaike類型的節(jié)點,并創(chuàng)建一些關(guān)系。

創(chuàng)建語句:CREATE (a:BaiduBaike {name:'上海'})-[r:火車站] ->(b:BaiduBaike {name:'上海站'})

根據(jù)以上語句稍微改動一下,創(chuàng)建出如下圖節(jié)點關(guān)系

使用如下代碼,即可以通過頭實體名?或?尾實體名?查詢關(guān)系。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 今天和朋友聊天,說到了如何精進,如何進步,歸根到底和社會進步、行業(yè)迭代一致,都是由自己和行業(yè)的匹配度有關(guān),自己...
    托尼在廈門閱讀 889評論 0 50
  • 巨壓之下,如釋重負,開心無比。 最是江南好風景,落花時節(jié)又逢君。國足給力,球迷提氣,長沙主場的球迷們,你們的球票沒...
    想太多先生ma閱讀 413評論 0 0
  • 那些或濃烈或淡薄的愛戀 全都隱含著淺嘗輒止的影子 可是遠山 你根本不知道我有多想它
    哀慕熙榮閱讀 319評論 1 1

友情鏈接更多精彩內(nèi)容