카테고리 없음

Neo4j로 그래프DB(graphDB) 다루기: match 와 merge의 차이

Tech Signal 2021. 8. 12. 16:58

MATCH (n:User{name:'ossong', height:'130'}) MATCH (m:User{name:'lily'}) MERGE (n)-[r:SAME_CLASS]-(m)

키가 130인 ossong과 lily를 찾아서 SAME_CLASS로 관계를 이어주려했으나,

저기 가운데 보이는 ossong은 height이 130이 아니라 170으로 설정되어있다.

 

=> (no changes, no records). 변화 없음!

아마 MATCH가 아니라 MERGE (n:User{name:'ossong', height:'130'})로 했다면

노드가 없으니 새로 만들어서 lily와 연결이 되었을 것이다.

 

즉 MATCH와 MERGE의 차이는

MATCH: 조건에 맞는 노드나 엣지가 있는지 확인만 한다.

MERGE: 조건에 맞는 노드나 엣지가 없으면 그 조건대로 새로 만든다.