当前位置:   article > 正文

从零开始Py2neo操作Neo4j(一)_py2neo neo4j从零开始创建

py2neo neo4j从零开始创建

一、创建Project

  1. 我这里是通过pycharm直接创建Python3.7环境下的工程,Py2neo版本为4.3,正常运行
  2. 创建python文件import py2neo,并连接数据库
    from py2neo import Graph,Node,Relationship 
    graph = Graph("http://localhost:7474",auth=("neo4j","fHw5280***"));
    
    • 1
    • 2
  3. 创建Node节点
    a = Node('Person', name='宋老三')
    b = Node('Person', name='王老二')
    r = Relationship(a, 'Love', b)
    #亦可以传入Subgraph r = a | b | r 效果相同
    graph.create(r)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    创建结果在这里插入图片描述Node和Relationship可以定义对应的实例,Node第一个参数是label, 再利用graph.create()创建

二、Object操作方法

我姑且将Node和Relation看作一种特殊的Dict形式

  1. Node:节点的实体对象

    #设置key键对应的value,如果value是None就移除这个property
    a['age'] = 20
    b['age'] = 22
    r['time'] = '2020-01-01'
    #获取key对应的property
    x=a['age'] 
    #返回所以和这个节点有关的label
    labels=a.labels
    #返回node里面property的个数
    z=len(a)
    #删除某个property
    del r['time']
    #删除某个label
    a.labels.remove('Person')
    #将node的所有property以dictionary的形式返回
    dict(a)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  2. Relation:两者关系的实体对象

    #创建Relationship
    Relationship`(*start_node*, *type*, *end_node*, ***properties*)
    #返回Relationship的property
    Relationship[key]
    #删除某个property
    del Relationship[key]
    #将relationship的所有property以dictionary的形式返回
    dict(relationship)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    备注:dict的update与setdefault等方法均可使用

  3. Subgraph:子图,顾名思义,neo4j是一张完整的图,从中取出的一部分Node与Relation的集合便称作子图,我姑且理解为Mysql中的视图,无法改变它们的属性,看作一种视角

    #构建方法
    s = a | b | r #或理解为加到一起,可用于构建子图
    s = a & b & r #同上理解,取交集
    s = a - b     #去除相同关系,保留不同关系
    print(s)
    print(s.nodes()) #子图所有节点
    print(s.relationships())#子图所有关系
    print(s.keys())#子图所有Key
    print(s.labels())#子图所有标签 我姑且理解为Node的类
    print(s.types())#子图所有类型 我姑且理解为Relation的name
    print(order(s))#子图节点数
    print(size(s))#子图关系数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注:markdown真好用 Tab整体缩进,Shift+Tab整体退格

  4. Walkable:没啥可说,可以遍历的子图,构建上比子图多了开始节点和终止节点

    from py2neo import walk
    #构建walkable
    ab = Relationship(a, "LOVE", b)
    ac = Relationship(a, "LOVE", c)
    w = ab + Relationship(b, "LIKES", c) + ac
    print(w)
    #遍历walkable
    for item in walk(w):
       print(item)
    #walkable方法
    print(w.start_node()) #开始节点
    print(w.end_node()) #结束节点
    print(w.nodes()) #所有节点
    print(w.relationships()) #所有关系
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

有点累了,先去吃饭,回头再继续码 ( ̄▽ ̄)"

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号