python通过py2neo模块操作Neo4j图数据库

本篇文章主要内容是要将在Neo4j图形界面中操作的Cypher Query Language对应到python代码中去。

了解py2neo的简单操作请参考文章:使用py2neo模块,python操作Neo4j 图数据库 

安装py2neo版本4,py2neo使用说明参考:https://py2neo.org/v4/

Neo4j Cypher Query Language请参考文章:《一》《二》《三》

主要内容包括:

****注:graph=Graph(host='localhost', author=('你的数据库名','连接数据库的密码')  eg:graph=Graph(host='localhost', author=('neo4j','neo4j'))

1.Neo4j CQL - CREATE命令  <=====>  graph.create(node)#创建节点

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

3.py2neo --- Node Matching

4.py2neo --- Relationship Matching

py2neo:




1.Neo4j CQL - CREATE命令  <=====> graph.create(node)#创建节点

Neo4j CQL:   CREATE(c:Test_Class {name:"姚明董事长",id:"001",age:65,location:"上海"}) RETURN c
创建节点:    node=Node("Test_Class",name='姚明董事长',id='0001',age=65,location='上海')   graph.create(node)
在localhost页面,能找到刚刚创建的节点


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

查找节点

1.通过调用graph.nodes来查找
2.通过run方法,直接执行Neo4j CQL语句
2.graph.run("Neo4j Cphyer Query Language").data() 输出格式
3.通过run方法,直接执行Neo4j CQL语句
3.graph.run("Neo4j Cypher Query Language").to_data_frame() 输出格式

3.py2neo --- Node Matching:

通过标签和属性简单查找:NodeMatcher(graph).match()

通过NodeMatch.where()进行复杂查找:查找名字以“姚”开头的所有节点

通过where设置过滤条件
通过where设置过滤条件、排序、返回限定数量节点
通过len()方法,统计查找到节点的个数

4.py2neo --- Relationship Matching:

RelationshipMatcher(graph).match() 查找所有关系

查找所有关系

RelationshipMatcher(graph).match(r_type='关系名') 通过r_type确定关系名

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

通过r_type限定关系名  

RelationshipMatcher(graph).match().order_by().limit()   匹配、排序、限定返回次数

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



添加:2018-12-26问题:如何利用头尾节点名和关系名来查找neo4j中是否存在节点所对应的关系???

以下图为例:创建一些BaiduBaike类型的节点,并创建一些关系。

创建语句:CREATE (a:BaiduBaike {name:'上海'})-[r:火车站] ->(b:BaiduBaike {name:'上海站'})

根据以上语句稍微改动一下,创建出如下图节点关系

使用如下代码,即可以通过头实体名 或 尾实体名 查询关系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • 今天和朋友聊天,说到了如何精进,如何进步,归根到底和社会进步、行业迭代一致,都是由自己和行业的匹配度有关,自己...
    托尼在厦门阅读 741评论 0 50
  • 巨压之下,如释重负,开心无比。 最是江南好风景,落花时节又逢君。国足给力,球迷提气,长沙主场的球迷们,你们的球票没...
    想太多先生ma阅读 288评论 0 0
  • 那些或浓烈或淡薄的爱恋 全都隐含着浅尝辄止的影子 可是远山 你根本不知道我有多想它
    哀慕熙荣阅读 249评论 1 1