Py2Neo使用

Neo4J自己是由Java語言編寫,Py2Neo提供了Python操控Neo4J的相應API。html

安裝使用pip便可:node

pip install py2neo

鏈接 Database

摘自:https://py2neo.readthedocs.io...python

須要向py2neo傳遞一個URI,其格式爲:數據庫

<scheme>://[<user>[:<password>]@]<host>[:<port>]

若是不指明URI,那麼自動鏈接本地的7474端口。bash

name參數用來指明數據庫的名稱,password傳遞密碼。code

鏈接好之後,就能夠經過python向neo4j傳遞運行指令:htm

>>> 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傳入的位置參數是該節點的標籤名(一個節點能夠有多個標籤),關鍵詞參數是這個節點的屬性。ip

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() # 清空這個圖數據庫

參考資料:

相關文章
相關標籤/搜索