本篇文章主要內(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

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



2.Neo4j?CQL -?MATCH命令? <=====> graph.nodes.match(...).first()
查找節(jié)點





3.py2neo --- Node Matching:
通過標簽和屬性簡單查找:NodeMatcher(graph).match()

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



4.py2neo ---?Relationship?Matching:
RelationshipMatcher(graph).match() 查找所有關(guān)系

RelationshipMatcher(graph).match(r_type='關(guān)系名') 通過r_type確定關(guān)系名
語法:match(nodes=None,?r_type=None,?**properties)

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)系。
