[Neo4j] 간단한 Neo4j 개념 정리

2024. 2. 21. 00:18카테고리 없음

728x90
반응형

Neo4j GDB는 node, relationship, path 세 가지 핵심 개념으로 구성된다.

Nodes

Neo4j에서 data entity를 node라고 한다. Cypher에서는 ()를 사용하여 참조한다.

MATCH (n:Person {name:'Anna'})
RETURN n.born AS birthYear

node에는 다음 개념이 포함된다.

Lavel

  • 위 쿼리의 Person은 노드를 분류하는 라벨이다.
  • DB에서 특정 노드들을 가져오는데 사용한다.
  • 노드는 여러 라벨을 가질 수 있다. ex) Person, Actor

Property

  • 위 쿼리의 name은 노드가 가진 속성이다.
  • 노드의 특정 정보를 제공하는 데 사용된다. ex) Person의 name, age 등등
  • 속성은 쿼리에서 {} 안에 정의된다.

Valable

  • 위 쿼리의 n은 변수이다.
  • 쿼리의 결과를 return 절에 있는 변수에서 참조한다.

Relationships

그래프의 노드는 관계로 연결될 수 있다. 관계 쿼리시에는 하나의 타입의 시작 노드, 끝 노드를 가져야한다.
관계 쿼리는 -->로 나타낸다.

MATCH (:Person {name: 'Anna'})-[r:KNOWS WHERE r.since < 2020]->(friend:Person)
RETURN count(r) As numberOfFriends

노드와 다르게 관계 정보는 []안에 있어야한다.
위의 예시 쿼리는 Anna 라는 사람 이 2020년 이전에 알았던 사람의 수를 반환한다.

Paths

경로는 연결된 노드와 관계로 구성된다.

MATCH (n:Person {name: 'Anna'})-[:KNOWS]-{1,5}(friend:Person WHERE n.born < friend.born)
RETURN DISTINCT friend.name AS olderConnections

1~5 다리까지 건너건너 아는 사람 리턴

728x90
반응형