Neo4J自身是由Java语言编写,Py2Neo提供了Python操控Neo4J的相应API。
装置应用pip
即可:
<code class="bash">pip install py2neo
连贯 Database
摘自:https://py2neo.readthedocs.io…
须要向py2neo传递一个URI,其格局为:
<scheme>://[<user>[:<password>]@]<host>[:<port>]
如果不指明URI,那么主动连贯本地的7474端口。
name
参数用来指明数据库的名称,password
传递明码。
连贯好当前,就能够通过python向neo4j传递运行指令:
>>> from py2neo import Graph >>> sales = Graph("bolt+s://g.example.com:7687", name="sales", password='***') >>> sales.run("MATCH (c:Customer) RETURN c.name").to_data_frame() # 需装置pandas
操作数据库
除了间接用run
命令写入、读取数据外,咱们还能用面向对象的形式来操作数据:
>>> from py2neo import Graph, Node, Relationship >>> g = Graph() # 建设连贯 >>> a = Node("Person", name="Alice", age=33) # 新建节点 >>> b = Node("Person", name="Bob", age=44) >>> KNOWS = Relationship.type("KNOWS") # 建设节点之间的关系 >>> g.merge(KNOWS(a, b), "Person", "name") # MERGE 命令会主动应用事务进行操作
以及,获取节点(每个节点都会有一个隐含的ID,且这个ID是惟一的):
>>> graph = Graph() >>> len(graph.nodes) 55691 >>> graph.nodes[1234] (_1234:Person {name: 'Alice'}) >>> graph.nodes.get(1234) (_1234:Person {name: 'Alice'})
Node
类的初始化办法是__init__(self, *labels, **properties)
,因而,咱们实例化Node
传入的地位参数是该节点的标签名(一个节点能够有多个标签),关键词参数是这个节点的属性。
Relationship
类初始化接管的前三个(或者两个)地位参数用于指明这个关系的起始节点、关系标签(可有可无)、终止节点,关键词参数指明这个关系的属性。
事务
摘自:https://py2neo.readthedocs.io…
事务是数据库很重要的一个性能!
创立事务并提交:
>>> 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) True
查问
摘自:https://py2neo.readthedocs.io…
py2neo.matching
模块提供了依据某些规范匹配节点和关系的性能。
对于通过标签和属性进行节点的相等匹配:
>>> g = Graph() >>> nodes = NodeMatcher(g) >>> keanu = nodes.match("Person", name="Keanu Reeves").first() >>> keanu Node('Person', born=1964, name='Keanu Reeves')
对于关系的匹配咱们应用RelationshipMatcher
类来进行。
>>> g.nodes.match("Person", name="Alice").all()
删除
>>> g = Graph() >>> g.delete_all() # 清空这个图数据库
参考资料: