neo4j建立節點之間的關係

2021-09-19 05:07:56 字數 2327 閱讀 2823

節點的建立時很簡單的,只要用create建立名字和屬性即可。但是節點的關係建立有點複雜,因為需要考慮如何匹配到有關係的兩個節點,以及關係本身的屬性如何設定。這裡我簡單學一下如何建立節點之間的關係。

選擇的順序是由易到難,而不是場景的使用頻率。

語法:

create  

(:)-

[:]->

(:)return

案例

create (fb1:facebookprofile1)-[like:likes]->(fb2:facebookprofile2)
結果

分析:create語句建立了1乙個關係,2個節點

2個節點只有lable而沒有屬性,也就是只有角色。比如建立了乙個警察標籤,乙個小偷標籤。沒有屬性就不知道是誰。這樣的關係其實是沒有現實意義的。

顯示的兩個節點自動分配了id,其實不代表任何real 實體。

語法

create  

(:{})-

[:{}]

->(:{})

return #return子句是可選的。 如果我們想立即看到結果,那麼使用它。 否則,我們可以省略這個子句。

例項

create (video1:youtubevideo1)

-[movie:action_movies]->

(video2:youtubevideo2)

結果

解釋1,建立2個節點,1個關係

2,關係和節點都有屬性,和實體關聯。我們可以清楚看到電影之間關係。

語法

match (:),(:)

create

()-[:]->()

return #return子句是可選的。 如果我們想立即看到結果,那麼使用它。 否則,我們可以省略這個子句。

例項-需要先建立節點customer,creditcard

match (e:customer),(cc:creditcard) 

create (e)-[r:do_shopping_with ]->(cc)

結果

分析為現有的兩個節點新增了關係。這種情況我們需要用match先找到兩個節點,然後在給兩個節點新增關係。如果沒有match就等同於新建節點。現有的節點被忽略

這個例子比較簡單,沒有匹配的規則,實際參考意義不大

我們先看乙個實際案例,縣建立了節點,後建立了關係。

注意點

1,建立節點和關係語句必須一次執行完,否則如上面例子所述,建立關係時()中的節點被認為是新的節點。

2,分號是乙個語句的結尾

3,同時執行時,keanu等作為節點的識別符號可以被下面識別,分開執行後面語句是認為新的節點。

create (thematrix:movie )

create (keanu:person )

create (carrie:person )

create (laurence:person )

create (hugo:person )

create (lillyw:person )

create (lanaw:person )

create (joels:person )

create

(keanu)-[:acted_in ]->(thematrix),

(carrie)-[:acted_in ]->(thematrix),

(laurence)-[:acted_in ]->(thematrix),

(hugo)-[:acted_in ]->(thematrix),

(lillyw)-[:directed]->(thematrix),

(lanaw)-[:directed]->(thematrix),

(joels)-[:produced]->(thematrix)

create (emil:person )

create (emil)-[:acted_in ]->(thematrix)

neo4j安裝 基於Neo4j的知乎關係爬蟲

首先交代一下爬蟲所用到的資料庫和環境 neo4j使用類似sql的查詢語言cypher,關於cypher的使用和簡單demo,可以參考cypher查詢語言 neo4j中的sql。當然,為了減少學習cypher的時間成本,我在python環境中安裝了py2neo,pip install py2neo。p...

neo4j 刪除重複節點

這裡的重複節點指的是乙個label下的部分節點,屬性a相同,其他屬性不相同 本文中的資料為舉例說明,實際資料不便展示,但表達的意思一致 1.neo4j中label為person的的節點有name和wechat兩個屬性,關係type為friend 2.在進行資料的清洗和預處理過程中,name對應的we...

更新neo4j節點資訊

將多個屬性的內容更新到節點上 def update by id id,graph,kwargs 更新節點的屬性 根據節點的id來更新節點的屬性,如果存在該屬性,則更新,如果不存在該屬性,則新增 if graph is none graph get graph if kwargs is none re...