【技巧分享】Neo4j Python入门操作

本文详细讲解了Neo4j的环境配置,包括安装步骤,以及使用Python的py2neo库执行Cypher语句进行增删改查操作,同时展示了面向对象方式处理节点和关系的方法。
摘要由CSDN通过智能技术生成

环境配置

  • 安装Neo4j及配置,略
  • 安装Java及配置,略
  • 安装py2neo:conda install py2neo
  • 启动环境:neo4j console
  • 关闭环境:neo4j stopCtrl+C

常用语句

from py2neo import Graph

URI = "neo4j://localhost"
AUTH = (USER, PASSWORD)

# 连接到Neo4j数据库
graph = Graph(URI, auth=AUTH)

# 初始化数据库
graph.delete_all()

Cypher语句

order = """
    CREATE (f:Person {name: 'Father', age:30}),
           (s:Person {name: 'Son', age:10}),
           (:Person {name: 'Nobody', age:20}),
           (f) - [:FAMILY_WITH {type: 'Father'}] -> (s)
"""
graph.run(order)

order = "MATCH (n:Person{name:'Nobody'}) DELETE n"
graph.run(order)

quey_update = """
    MATCH (f:Person {name: 'Father'})-[r]->(s:Person {name: 'Son'})
    DELETE r
    CREATE (f)-[:FAMILY_WITH {type: 'Son'}]->(s)
"""
graph.update(quey_update)

query = "MATCH (n) RETURN n"
graph.run(query).to_data_frame()

面向对象

from py2neo import Subgraph

# 连接到Neo4j数据库
propertys = "Person"

# 增加节点及关系
father = Node(propertys, name="Father", age=30)
son = Node(propertys, name="Son", age=10)
nobody = Node(propertys, name="Nobody", age=20)
relation = Relationship(father, "FAMILY_WITH", son)

# 省略Node, Relationship, Path的新增方法
subgraph = Subgraph(nodes=[father, son, nobody], relationships=[relation]) 
graph.create(subgraph)

from py2neo import NodeMatcher

nodes = NodeMatcher(graph).match(name="Nobody")

if nodes.exists():
    # 找到节点,删除
    for node in nodes:
        graph.delete(node)

from py2neo import RelationshipMatcher

# 查询关系
relation = RelationshipMatcher(graph)
rel_match = relation.match(r_type="FAMILY_WITH")

if rel_match.exists():
    for rel in rel_match:
        rel['type'] = 'Son'
        graph.push(rel)

relation.match().all()


# 返回所有节点:方法一
from py2neo import NodeMatcher

node_matcher = NodeMatcher(graph)
nodes = node_matcher.match(propertys).all()
print(nodes)

# 返回所有节点:方法二
from py2neo import NodeMatch

nodes = NodeMatch(graph, labels=frozenset({propertys})).all()
print(nodes)

# 查询关系:方法一
from py2neo import RelationshipMatcher

rel_matcher = RelationshipMatcher(graph)
rels = rel_matcher.match(nodes=[father]).all()
for rel in rels: print(rel)

# 查询关系:方法二
from py2neo import RelationshipMatch

rels = RelationshipMatch(graph, nodes=[father]).all()
for rel in rels: print(rel)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值