Neo4j 第九篇:查詢數據(Match)

Cypher使用match子句查詢數據,是Cypher最基本的查詢子句。在查詢數據時,使用Match子句指定搜索的模式,這是從Neo4j數據庫查詢數據的最主要的方法。match子句以後一般會跟着where子句,向模式中添加過濾性的謂詞,用於對數據進行過濾。在查詢數據時,查詢語句分爲多個部分,with子句用於對上一個查詢部分的結果進行處理,以輸出到下一個查詢部分。數據庫

一,節點查詢

對節點進行查詢,是查詢graph的基本操做,節點具備標籤和屬性,Match查詢不只可以按照標籤對節點進行查詢,還能按照屬性對節點進行查詢。 當沒有指定節點的標籤或屬性時,默認是選擇節點所有的標籤和屬性。函數

1,查詢全部節點spa

僅僅指定一個節點的模式,沒有標籤(Lable)和屬性,表示查詢全部的節點:code

MATCH (n)
RETURN n

2,查詢帶有特定標籤的節點blog

當模式中指定標籤時,表示只查詢帶有特定標籤的節點,有多個標籤的節點,只要含有指定的標籤,就成功匹配,綁定該節點。ip

MATCH (movie:Movie)
RETURN movie.title

3,查詢相關的任意節點文檔

指定一個節點,節點的name屬性是'Oliver Stone',查詢跟該節點相關的其餘節點:get

MATCH (director { name: 'Oliver Stone' })--(movie)
RETURN movie.title

4,查詢相關的特定節點it

指定一個節點,查詢跟節點相關的節點,並指定相關節點的標籤io

MATCH (:Person { name: 'Oliver Stone' })--(movie:Movie)
RETURN movie.title

二,基本關係的查詢

對關係進行查詢,關係的模式是由兩個節點來決定的。

1,指定關係的方向來查詢節點

對於標籤是Person,而且name屬性是'Oliver Stone'的節點,該節點指向另一個節點movie:

MATCH (:Person { name: 'Oliver Stone' })-->(movie)
RETURN movie.title

2,查詢關係的類型

在查詢關係時,能夠在match子句中指定關係變量,後續子句能夠引用該變量,例如,使用type()函數查看關係的類型:

MATCH (:Person { name: 'Oliver Stone' })-[r]->(movie)
RETURN type(r)

3,匹配關係類型

在匹配關係時,能夠指定關係的類型

MATCH (wallstreet:Movie { title: 'Wall Street' })<-[:ACTED_IN]-(actor)
RETURN actor.name

3,匹配多種關係類型

在匹配關係時,能夠指定多種關係的類型,只須要匹配其中任意一個關係類型就匹配成功

MATCH (wallstreet { title: 'Wall Street' })<-[:ACTED_IN|:DIRECTED]-(person)
RETURN person.name

4,匹配關係類型,並指定關係變量

MATCH (wallstreet { title: 'Wall Street' })<-[r:ACTED_IN]-(actor)
RETURN r.role

5,匹配多個關係

MATCH (charlie { name: 'Charlie Sheen' })-[:ACTED_IN]->(movie)<-[:DIRECTED]-(director)
RETURN movie.title, director.name

三,匹配路徑

 路徑是節點和關係交替組合構成的序列,圖中必須知足路徑指定的模式,才能返回路徑中的元素。

1,對變長路徑的查詢

MATCH (martin { name: 'Charlie Sheen' })-[:ACTED_IN*1..3]-(movie:Movie)
RETURN movie.title

2,路徑變量

MATCH p =(actor { name: 'Charlie Sheen' })-[:ACTED_IN*2]-(co_actor)
RETURN relationships(p),p

3,根據路徑的屬性進行匹配

MATCH p =(charlie:Person)-[* { blocked:false }]-(martin:Person)
WHERE charlie.name = 'Charlie Sheen' AND martin.name = 'Martin Sheen'
RETURN p

 

 

參考文檔:

Cypher Match

相關文章
相關標籤/搜索