您的位置:首页 > 其它

neo4j py2neo 的简单使用

2018-01-03 22:52 513 查看
文档地址
http://py2neo.org/v3/index.html 1

简单创建

from py2neo import Graph, Node, Relationship

graph = Graph(
"http://localhost:7474",
username="neo4j",
password="neo4j"
)

a = Node("Stu", name='aa')
b = Node("Stu", name='bb')
rel = Relationship(a, 'friend', b,type='good')
print(rel)  # (aa)-[:friend {type:"good"}]->(bb)

graph.create(a)
graph.create(b)
graph.create(rel)




执行语句

from py2neo import Graph, Node, Relationship

graph = Graph(
"http://localhost:7474",
username="neo4j",
password="neo4j"
)

sql = 'return [x in range(0,10) | x] as n'
res = graph.run(sql)
for i in res:
print(i)
print('\n')
graph.run(sql).dump()


('n': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

n
------------------------------------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

graph.run("UNWIND range(1, 10) AS n RETURN n, n * n as n_sq").dump()

n  n_sq
---------
1  1
2  4
3  9
4  16


事务

# 事务的提交和处理
graph.delete_all()
tx = graph.begin()
n1 = Node("Person", name="n1")
n2 = Node("Person", name="n2")
tx.create(n1)
tx.create(n2)
sql = 'match (n) return n'
tx.run(sql).dump()
# 1/0
print('succ')
tx.commit()

执行成功



执行失败,会自动回滚事务

# 事务的提交和处理
graph.delete_all()
tx = graph.begin()
n1 = Node("Person", name="n1")
n2 = Node("Person", name="n2")
tx.create(n1)
tx.create(n2)
sql = 'match (n) return n'
tx.run(sql).dump()
1/0
print('err')
tx.commit()

Traceback (most recent call last):
n
File "D:/code/pycharm/py36/db/简单使用.py", line 28, in <module>
1/0
-------------------------
ZeroDivisionError: division by zero
(n2:Person {name:"n2"})
(n1:Person {name:"n1"})




结果转化为类似json的格式

data = graph.run("MATCH (a:Person) RETURN a.name LIMIT 4").data()

[{'a.name': 'n1'}, {'a.name': 'n2'}]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  py2neo Neo4j