微信网站如何做,济南 网站优化,wordpress翻页相同内容,电子商务网站开发案例目录 安装练习节点和关系结构连接数据库添加节点1. Cypher2. Py2neo 添加关系1. Cypher2. Py2neo 批量添加1. Cypher2. Py2neo 查询1. Cypher2. Py2neo 更新1. Cypher2. Py2neo 删除1. Cypher2. Py2neo 安装
这边直接下载了Neo4j Desktop安装py2neo#xff0c;安装后就可直接… 目录 安装练习节点和关系结构连接数据库添加节点1. Cypher2. Py2neo 添加关系1. Cypher2. Py2neo 批量添加1. Cypher2. Py2neo 查询1. Cypher2. Py2neo 更新1. Cypher2. Py2neo 删除1. Cypher2. Py2neo 安装
这边直接下载了Neo4j Desktop安装py2neo安装后就可直接使用
pip install py2neo练习节点和关系结构
类型字段1字段2字段3字段4nodeidnametypeindustrylinksourcerelationtarget-
连接数据库
Desktop直接打开用Neo4j Browser打开就行很方便 下面这个是使用Py2neo库链接数据库
from py2neo import Graph, Node, Relationship# 连接到Neo4j
graph Graph(bolt://localhost:7687, auth(neo4j, password))添加节点
1. Cypher
在Neo4j Browser中可以直接输入命令
CREATE (n:Node {id:1, name:Alice, type:Person, industry:software})2. Py2neo
# 创建节点
a Node(Node, id1, nameAlice, typePerson, industrysoftware)
graph.create(a)
b Node(Node, id2, nameBom, typePerson, industryhardware)
graph.create(b)添加关系
1. Cypher
MATCH (a:Node),(b:Node)
WHERE a.name Alice AND b.name Bom
CREATE (a)-[r:KNOWS] - (b)
RETURN r2. Py2neo
这里的a,b是承接上一部分的添加节点的代码
# 创建关系
rel Relationship(a, KNOWS, b)
graph.create(rel)批量添加
本人测试下来这两种方法后者速度更快
1. Cypher
这边的文件得放在neo4j文件夹下的import文件夹里 node
LOAD CSV WITH HEADERS FROM file:///nodes.csv AS row
CREATE (n:Node {id: row.id, name: row.name, type: row.type, industry: row.industry});
relation
LOAD CSV WITH HEADERS FROM file:///links.csv AS row
MATCH (source:Node {id: row.source}), (target:Node {id: row.target})
MERGE (source)-[r:RELATIONSHIP {type: row.relation}]-(target);
2. Py2neo
node
import pandas as pd
from tqdm import tqdm# 读取CSV文件
df pd.read_csv(path/to/your/nodes.csv)# 使用tqdm显示进度条
for index, row in tqdm(df.iterrows(), totaldf.shape[0]):# 创建节点这里假设CSV有name, type, industry列node Node(Node, idrow[id], namerow[name], typerow[type], industryrow[industry])# 将节点添加到图中graph.create(node)relation
# 读取关系CSV文件
df_relations pd.read_csv(path/to/your/relations.csv)for index, row in df_relations.iterrows():source_node matcher.match(Node, idrow[source]).first()target_node matcher.match(Node, idrow[target]).first()if source_node and target_node:rel Relationship(source_node, row[relation], target_node)graph.create(rel)
查询
1. Cypher
MATCH (n:Node)
WHERE n.industry software
RETURN n2. Py2neo
# 查询所有类型为Person的节点
query MATCH (n:Node) WHERE n.industry software RETURN n
nodes graph.run(query)
for node in nodes:print(node)更新
1. Cypher
MATCH (n:Node {name: Alice})
SET n.industry IT
RETURN n2. Py2neo
# 查找名为Alice的节点并更新其行业
alice matcher.match(Node, nameAlice).first()
if alice:alice[industry] ITgraph.push(alice)删除
1. Cypher
MATCH (n:Node)-[r:KNOWS]-()
DELETE r2. Py2neo
方法一查询节点后删除
# 删除名为Bom的节点
bom graph.nodes.match(Node, nameBom).first()
graph.delete(bom)方法二运行CYPHER语句
#删除特定属性的节点例如删除所有industry为hardware的节点
query MATCH (n:Node {industry: hardware}) DELETE n
graph.run(query)# 删除特定类型的关系例如删除所有KNOWS关系
query MATCH ()-[r:KNOWS]-() DELETE r
graph.run(query)如果有帮助到你能点个赞嘛!谢谢