본문 바로가기
GDB & Cypher/간단한 사용법

[Cypher] 그래프 수정하기(Manipulating Graph)

by 열정주니어 2023. 1. 11.
반응형

이전 포스팅들을 통해 GDB에 데이터를 적재하고 조회하는 방법까지 알아보았다.

Cypher - 그래프 질의하기

 

Cypher - 그래프 질의하기(Querying Graph)

이전 포스팅들을 통해 GDB에 그래프와 레이블을 생성한 후, 노드&엣지를 생성하였다. Cypher - 노드&엣지 생성/제거하기 Cypher - 노드&엣지 생성/제거하기(CREATE/DELETE Node&Edge) GDB를 사용하기 위해서는

jobdahan-tech.tistory.com

이번에는 GDB에서 적재한 데이터를 수정하는 방법을 알아보도록 한다.

 

그래프 수정(Mnipulating Graph)

기존에 있던 그래프 데이터를 수정하기 위해서는 그래프 조회 때와 마찬가지로 MATCH 절의 패턴을 표기하여 해당 그래프를 찾아낸 뒤에 수정 작업을 해야 한다.

 

그래프를 수정하는 쿼리는 다음과 같다.

MATCH (v:label_name {property: 'property_name'})
SET v.property = 'property_name2'

MATCH 절은 해당 절에 표기된 패턴에 부합하는 그래프 데이터를 찾아낸다. 그리고 SET 절을 이용하여 노드나 엣지의 속성 값을 설정할 수 있다. (기존의 속성 값: property_name -> 새로 설정한 속성 값: property_name2)

 

패턴을 표기하는 방법은 다음 포스팅을 참고한다.

Cypher - 그래프 표현 방법, 패턴(Pattern)

 

Cypher - 그래프 표현 방법, 패턴(Pattern)

이전 포스팅들을 통해 간단하게 Cypher를 이용하여 그래프를 다루는 법을 알아보았다. 이번 시간에는 그래프를 표현하는 방법인 패턴에 대해 알아보도록 한다. 패턴은 하나이상의 노드 or 엣지의

jobdahan-tech.tistory.com

 

예시

이전에 적재한 그래프 정보에서 이름이 '박OO'인 사람의 나이'박OO'이 '이OO'에게 남긴 좋아요 수 속성 값을 새로 설정해보록 한다.

속성 값을 수정하는 질의는 다음과 같다.

MATCH (v:n_user{name:'박OO'})-[r:e_follow{like:0}]->(v2:n_user{name:'이OO'})
SET v.age = 31, r.like = 1;

우선 MATCH절로 '박OO'와 '이OO'의 관계를 나타내는 패턴을 표기하여 원하는 그래프를 찾는다. 그리고 SET절을 이용하여 변수v에 해당하는 사용자 '박OO'의 나이 속성 값을 31변수 r에 해당하는 '박OO'과 '이OO' 팔로우 관계의 좋아요 수속성 값을 1로 변경한다.

 

쿼리의 결과는 다음과 같다.

쿼리를 실행하면 'UPDATE 2' 알림을 통해 속성 값 두가지가 업데이트 됨을 알 수 있다.

 

이제 새로 설정한 속성 값이 잘 변경이 되었는지 조회를 통해 확인하도록 한다.

MATCH (v:n_user{name:'박OO'})-[r:e_follow]->(v2:n_user{name:'이OO'})
RETURN *;

마찬가지로 MATCH절을 통해 '박OO'와 '이OO'의 관계를 나타내는 패턴을 표기하여 원하는 그래프를 찾고, RETURN절을 통해 모든 속성 값들을 조회하여 새로 설정한 값들이 잘 변경되었는지 확인한다.

 

조회의 쿼리를 실행한 결과는 다음과 같다.

위의 결과를 통해 사용자 '박OO'의 나이가 31, '박OO'이 '이OO'에게 남긴 좋아요 수가 1로 변경이 된것을 확인할 수 있다.

 

이것으로 이번 포스팅에서는 Cypher를 이용하여 그래프를 수정하는 방법을 알아보았다.

 

다음 포스팅에서는 이전의 포스팅들에서 많이 언급이 되었던 그래프를 표현하는 방법, 패턴에대해 알아보도록한다.

 

참고

https://bitnine.net/ko/documentation/ (아젠스그래프 개발자 메뉴얼 가이드)

 

문서 ⋆ Bitnine Global Inc.

문서 ⋆ Bitnine Global Inc.

bitnine.net

 

반응형