티스토리 뷰
CREATE 구문을 사용하여 노드와 관계를 만들었다면, 이번에는 기존에 생성한 노드나 관계를 찾아 새로운 프로퍼티를 추가하거나 생성하기 위해 MATCH 구문과 함께 SET과 CREATE 구문을 함께 사용하도록 한다.
먼저 MATCH와 SET을 같이 사용하여 기존에 생성된 노드를 찾아 프로퍼티나 레이블을 추가할 수 있다.
1. 특정 노드를 찾아 프로퍼티를 추가
MATCH (n:Person{name:'Alice'})
SET n.age = 38, n.eyes = 'brown'
RETURN n
2. 특정 노드를 찾아 프로퍼티와 label를 추가
MATCH (n)
WHERE n.name='Bob'
SET n:Person, n.age = 25, n.eyes = 'blue'
RETURN n, labels(n)
* WHERE 절을 사용하여 특정 노드를 찾았다.
3. 특정 노드를 찾아 프로퍼티를 변경
MATCH (n)
WHERE n.name='Charlie'
SET n = {age:54, eyes:'green'} , n:Person
RETURN n
위와 같은 형식으로 SET을 사용하면 { }로 입력한 map의 내용으로 덮어써지고 기존의 properties는 삭제된다.
4. 특정 노드를 찾아 프로퍼티를 변경
MATCH (n)
WHERE n.age=54 AND n.eyes='green'
SET n = {name:'Charlie', age:54, eyes:'green', gender:'male'} , n:Person
RETURN n
5. 특정 노드를 찾아 프로퍼티를 변경
MATCH (n)
WHERE n.name='Daniel'
SET n += { eyes:'brown'} , n:Person
RETURN n
* n += { } 형식으로 SET을 사용하면 기존의 properties는 유지가 된다.
6. 특정 노드를 찾아 프로퍼티를 변경 및 복수개의 label 추가
MATCH (n)
WHERE n.name='Eskil'
SET n += {name:'Eskil', age:41, eyes:'brown'} , n:Person:Developer
RETURN n
이번에는 MATCH와 CREATE 문을 사용하여 기존에 생성된 노드를 찾고 관계를 생성해 보도록 한다.
1. 특정 노드를 찾아 관계를 생성
MATCH (n:Person{name:'Alice'}), (m)
WHERE m.name='Bob'
CREATE (n)-[r:KNOWS]->(m)
RETURN n, type(r), m
2. 특정 노드를 찾아 여러 관계를 생성
MATCH (a:Person), (b), (c)
WHERE a.name='Alice' AND b.name='Charlie' AND c.name='Daniel'
CREATE (a)-[:KNOWS]->(b)-[:KNOWS]->(c)
RETURN a, b, c
3. 특정 노드를 찾아 관계와 관계의 property 생성
MATCH (n), (m)
WHERE n.name="Jane" AND m.name="Daniel"
CREATE (n)-[r:KNOWS{since:1999}]->(m)
RETURN n, r, m
4. 특정 노드를 찾아 관계와 관계의 property 생성 (SET을 함께 사용)
MATCH (a), (b)
WHERE a.name='Bob' AND b.name='Daniel'
CREATE (a)-[r:KNOWS]->(b)
SET r.since = 2020
RETURN a,type(r), r.since, b
참조 :
https://neo4j.com/docs/cypher-manual/4.0/
'Neo4j' 카테고리의 다른 글
Cypher - MERGE (1) | 2020.06.15 |
---|---|
Cypher - REMOVE & DELETE (0) | 2020.06.15 |
Cypher - MATCH (1) (0) | 2020.06.15 |
Cypher - CREATE (0) | 2020.06.15 |
Cypher 구문 및 표현 (0) | 2020.06.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 지식 그래프
- 사이퍼
- RDF 변환
- neosemantics
- networkx
- property graph
- 타임리프
- TBC
- stardog
- 트리플
- pyvis
- rdfox
- Thymeleaf
- RDF
- 온톨로지
- sparql
- Linked Data
- 스프링부트
- 트리플 변환
- TopBraid Composer
- cypher
- TDB
- 지식그래프
- 장고
- LOD
- Ontology
- Knowledge Graph
- 그래프 데이터베이스
- Neo4j
- django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함