Python 操作 neo4j 数据库(py2neo)
基础
参考:Neo4j 第十二篇:使用Python驱动访问Neo4j - 悦光阴 - 博客园 (cnblogs.com)
查询语法
序号 | 关键字 | 关键字作用 |
---|---|---|
1 | CREATE | 创建 |
2 | MATCH | 匹配 |
3 | RETURN | 加载 |
4 | WHERE | 过滤检索条件 |
5 | DELETE | 删除节点和关系 |
6 | REMOVE | 删除节点和关系的属性 |
7 | ORDER BY | 排序 |
8 | SET | 添加或更新属性 |
create
create(Node:Image{name:'0516151.jpg', visible:False}) # 创建节点
MATCH (cust)-[r:DO_SHOPPING_WITH]->(cc) # 创建单向关系
match
# 给对应的节点添加关系
match (image:Imageaaaa{name:"pc3.jpg"}),(typ:Label{name:"风景"}) create (image)-[r:HAS_LABEL]->(typ) return image, typ, r
remove
# 删除节点属性
match(t:Teacher) remove t.name
set
# 添加/修改节点属性
match(t:Teacher) set t.name='yyy' return t
where
序号 | 布尔运算符 | 描述 |
---|---|---|
1 | = | 它是Neo4j CQL“等于”运算符。 |
2 | <> | 它是一个Neo4j CQL“不等于”运算符。 |
3 | < | 它是一个Neo4j CQL“小于”运算符。 |
4 | > | 它是一个Neo4j CQL“大于”运算符。 |
5 | <= | 它是一个Neo4j CQL“小于或等于”运算符。 |
6 | = | 它是一个Neo4j CQL“大于或等于”运算符。 |
序号 | 布尔运算符 | 描述 |
---|---|---|
1 | AND | 它是一个支持AND操作的Neo4j CQL关键字。 |
2 | OR | 它是一个Neo4j CQL关键字来支持OR操作。 |
3 | NOT | 它是一个Neo4j CQL关键字支持NOT操作。 |
4 | XOR | 它是一个支持XOR操作的Neo4j CQL关键字。 |
# 使用where
MATCH (cust:Customer),(cc:CreditCard)
WHERE cust.id = "1001" AND cc.id= "5001"
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc)
RETURN r
# 有必要补充一下,可以不使用WHERE达到WHERE的一些效果,比如
MATCH p=(m:Bot{id:123})<-[:BotRelation]->(:Bot) RETURN p
order by
match(s:Student) return s order by s.id desc,s.name
delete
# 删除对应节点和关系
MATCH (cc: CreditCard)-[rel]-(c:Customer)
DELETE cc,c,rel
索引
添加索引
CREATE INDEX ON :Person(name)
删除索引
DROP INDEX ON :Person(name)
查询创建的索引
:schema
约束
CREATE CONSTRAINT ON (n:test) ASSERT n.name IS UNIQUE
1)约束只对指定的lable下面的字段有效,其他label不受影响
2)一次只能给一个lable添加约束
事务
不用cql语句
from py2neo import Graph, Node, Relationship
g = Graph()
tx = g.begin()
a = Node("Person", name="Alice")
tx.create(a)
b = Node("Person", name="Bob")
ab = Relationship(a, "KNOWS", b)
tx.create(ab)
tx.commit()
g.exists(ab)
使用cql语句
from py2neo import Graph
g = Graph()
tx = g.begin()
try:
cql = "Create(Node:Image{})"
tx.run(cql)
cql = "Create(Node:Device{})"
tx.run(cql)
tx.commit()
except Exception as e:
print(e)
tx.rollback()
本文来自博客园,作者:糖烤栗子&,转载请注明原文链接:https://www.cnblogs.com/grocerystore/p/15414973.html