https://neo4j.com/docs/cypher-manual/current/clauses/return/
*Example Graph
CREATE (a {name:'A', age:55, happy:"Yes!"}),
(b {name:'B'}),
(a)-[:BLOCKS]->(b),
(a)-[:KOWS]->(b)
1. Return nodes
반환하고 싶은 노드를 RETURN 구문에 나열
#name이 B인 노드 반환
MATCH (n {name: 'B'})
RETURN n
2. Return relationships
관계를 반환하려면 단순히 RETURN 구문에 포함
#KNOWS인 관계 반환
MATCH (n {name: 'A'})-[r:KNOWS]->(c)
RETURN r
3. Return property
속성을 반환하려면 dot(.) 을 사용
#name이 A인 노드의 name 과 age속성 반환
MATCH (n {name: 'A'})
RETURN n.name, n.age
4. Return all elements
모든 노드, 관계 및 경로를 반환하려면 * 를 사용
MATCH p = (a {name: 'A'})-[r]->(b)
RETURN *
5. Variable with uncommon characters
영어 알파벳이 아닌 문자를 변수이름으로 사용할 경우 ` 을 사용하여 변수 이름을 묶어서 사용
MATCH (`This isn\'t a common variable`)
WHERE `This isn\'t a common variable`.name = 'A'
RETURN `This isn\'t a common variable`.happy
6. Column alias
사용된 이름을 다른 이름으로 표현하고 싶은 경우 AS 사용
#반환할 때 a.age를 SomethingTotallyDifferent로 반환
MATCH (a {name: 'A'})
RETURN a.age AS SomethingTotallyDifferent
7. Optional properties
노드마다 속성이 있을 수도 있고 없을 수도 있는 경우 없는 속성은 null로 반환
#노드 B는 age 속성이 없으므로 null로 반환
MATCH (n)
RETURN n.age
8. Other experssions
RETURN 명령어는 리터럴, 문자열, 함수 등 모든 것들을 반환
MATCH (a {name: 'A'})
RETURN a.age > 30, "I'm a literal", [p=(a)-->() | p] AS `(a)-->()`
9. Unique results
DISTINCT를 사용하면 중복된 값을 한 번만 반환
#DISTINCT를 사용하지 않으면 a에서 b로 가는 관계가 총 2개이므로
#b가 두번 반환
MATCH (a {name: 'A'})-->(b)
RETURN DISTINCT b
'DKE > Neo4j' 카테고리의 다른 글
[Neo4j] UNWIND / 2023.02.13 (0) | 2023.02.13 |
---|---|
[Neo4j] WITH / 2023.02.13 (0) | 2023.02.13 |
[Neo4j] MATCH (Get node or relationship by elementId) / 2023.02.08 (0) | 2023.02.08 |
[Neo4j] MATCH (Shortest path) / 2023.02.07 (0) | 2023.02.07 |
[Neo4j] MATCH (Relationships in depth) / 2023.02.07 (0) | 2023.02.07 |