https://neo4j.com/docs/cypher-manual/current/clauses/match/
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 |