Neo4j 是一個高性能的、開源的圖數據庫。它將數據存儲為圖結構,其中節點表示實體,邊表示實體之間的關系。這種圖數據模型非常適合處理復雜的關系型數據,能夠高效地進行關系查詢和遍歷。
Neo4j 的主要特性包括:
強大的圖查詢語言 Cypher:Cypher 是一種專門為 Neo4j 設計的聲明式查詢語言,使得查詢和操作圖數據變得直觀和高效。
創建兩個節點
CREATE (p:Person {name: 'Likefr', age: 40}), (m:Person {name: 'Neo', age: 20})
查詢節點
- 查詢name為
Likefr
的節點
MATCH(p:Person{name: 'Likefr'}) return p
- 查詢指定標簽 Person的所有節點
MATCH(p:Person) return p
查詢全部節點 (部分標簽)
MATCH (n)
RETURN n
關聯節點關系
- 1.創建節點時直接關聯
CREATE (p1:Person {name: 'MseDa'}), (p2:Person {name: 'Bob'})
CREATE (p1)-[:KNOWS]->(p2)
RETURN p1, p2
- 2.將已有節點關聯起來 (任何操作都是先把節點查出來在對其進行操作)
MATCH(p1:Person {name: 'MseDa'}), (p2:Person {name: 'Bob'})
create(p1)-[:KNOWS]->(p2)
新增或更新節點屬性
MATCH (p:Person {name: 'MseDa'})
SET p.age = 31
更新關系屬性
MATCH (p1:Person {name: 'MseDa'})-[r:KNOWS]->(p2:Person)
SET r.since = 2022
RETURN r
基本上操作都是一樣 先使用MATCH 定義一個別名 把數據撈出來 在進行操作
刪除節點
MATCH (p:Person {name: 'MseDa'})
DELETE p
- 刪除多個節點
MATCH (p:Person {name: 'MseDa'}), (p2:Person {name: 'Alice2'})
DELETE p,p2
- 需要注意的是 如果刪除的節點與其他節點有關聯將無法刪除并會拋出異常
意思就是: 該節點它仍然和別的節點有關系。要刪除該節點,必須先刪除其關系
刪除關系
MATCH (p1:Person {name: 'MseDa'})-[r:KNOWS]->(p2:Person)
DELETE r
同時刪除節點 和 關系
MATCH (p1:Person {name: 'MseDa'})-[r:KNOWS]->(p2:Person)
DELETE p1, r, p2
查詢節點的屬性值
create(el:lur{name: 'el',state: false})
match(el:lur{name: 'el'}) return el.state