본문 바로가기

DKE/Neo4j

[Neo4j] MATCH (Basic node finding) / 2023.02.06

https://neo4j.com/docs/cypher-manual/current/clauses/match/

 

MATCH - Cypher Manual

The `MATCH` clause is used to search for the pattern described in it.

neo4j.com

MATCH 명령어를 사용하면 Neo4j가 데이터베이스에서 검색할 패턴을 지정할 수 있음

 

*Example Graph

CREATE
  (charlie:Person {name: 'Charlie Sheen'}),
  (martin:Person {name: 'Martin Sheen'}),
  (michael:Person {name: 'Michael Douglas'}),
  (oliver:Person {name: 'Oliver Stone'}),
  (rob:Person {name: 'Rob Reiner'}),
  (wallStreet:Movie {title: 'Wall Street'}),
  (charlie)-[:ACTED_IN {role: 'Bud Fox'}]->(wallStreet),
  (martin)-[:ACTED_IN {role: 'Carl Fox'}]->(wallStreet),
  (michael)-[:ACTED_IN {role: 'Gordon Gekko'}]->(wallStreet),
  (oliver)-[:DIRECTED]->(wallStreet),
  (thePresident:Movie {title: 'The American President'}),
  (martin)-[:ACTED_IN {role: 'A.J. MacInerney'}]->(thePresident),
  (michael)-[:ACTED_IN {role: 'President Andrew Shepherd'}]->(thePresident),
  (rob)-[:DIRECTED]->(thePresident),
  (martin)-[:FATHER_OF]->(charlie)

1. Get all nodes

그래프의 모든 노드 반환

MATCH (n) RETURN n

2. Get all nodes with a label

특정 레이블이 있는 모든 노드 

#레이블이 Movie인 노드의 title 반환
MATCH (movie:Movie) RETURN movie.title

3. Related nodes

기호 -- 는 관계의 유형이나 방향에 관계 없이 단순히 관련된 것을 반환

#이름이 Oliver Stone인 노드와 관련된 것을 반환
MATCH (director {name: 'Oliver Stone'})--(movie)
RETURN movie.title

4. Match with labels

해당 labels이 있는 노드 

#label이 Person이고 name이 Oliver Stone인 노드와 관련된 노드 중에 label이 Movie인 노드 반환
MATCH (:Person {name: 'Oliver Stone'})--(movie:Movie)
RETURN movie.title

5. Match with a label expression for the node labels

OR식을 활용하면 지정한 레이블이 모두 포함된 노드를 반환

#label이 Movie이거나 Person인 노드
MATCH (n:Movie|Person)
RETURN n.name AS name, n.title AS title

 

'DKE > Neo4j' 카테고리의 다른 글

[Neo4j] MATCH (Relationships in depth) / 2023.02.07  (0) 2023.02.07
[Neo4j] MATCH (Relationship basics) / 2023.02.06  (0) 2023.02.06
[Neo4j] REMOVE / 2023.02.03  (0) 2023.02.03
[Neo4j] SET / 2023.02.03  (0) 2023.02.03
[Neo4j] DELETE / 2023.02.03  (0) 2023.02.03