오늘은 몰랐으면 내일은 알면 된다

[MongoDB 입문] 2. 간단한 조작(CRUD), database구조 차이 본문

DB

[MongoDB 입문] 2. 간단한 조작(CRUD), database구조 차이

마스터피쓰 2023. 1. 19. 15:01

compass를 열어서 간단한 조작을 해보자.

아래의 Shell을 열어서 몇가지 입력해보았다.

db를 선택하는 명령어인데, 이렇게 선택한다고 생기는 건 아니고 데이터가 생성이 되면 그때그때 생성이 되는 시스템이라고 한다.

데이터를 하나 넣어보자.  users라는 db에 하나의 데이터를 넣었다는 것 같다.

그렇다면 넣은 데이터는 어떻게 보느냐? 여러가지 find 메소드가 있다는 것 같다.

find 만 해보면 아래와 같이 insert된 데이터를 확인할 수 있다.

이제 데이터를 하나 더 추가해보자. 그런데 이번에는 name에 객체를 넣어볼 것이다.

그 다음 확인해보면 아래와 같이 서로 다른 데이터 형식이 들어간 것을 확인할 수 있다.

RDBMS에서 표 형식으로 데이터를 저장하는 것과 다르게, MongoDB에서는 이렇게 객체의 형태로 데이터를 저장하게 된다.

이를 Schemaless 특성이라고 한다.

 

이제 데이터를 수정해보자. name이 kny인 데이터를 찾아서, age라는 값을 추가해보았다.

결과로 kny라는 데이터에 match된 값이 1개이며, 업데이트 된 값도 1개인 것을 확인할 수 있다.

findOne으로 확인을 해보면 age가 추가된 것을 확인할 수 있다.

그러면 key 안에 객체가 있는 경우에는 어떻게 바꾸는가?

depth가 깊어지는 경우에는 큰 따옴표 안에 값을 넣어서 찾아준다. 값을 바꿀때도 마찬가지이다.

$set 뿐만 아니라 $inc를 사용해서 증감만 지정할 수도 있다. (감소일때는 -를 붙여준다)

값을 삭제할때도 마찬가지의 문법으로 작성해준다.

데이터 하나가 삭제되었다.

 

RDBMS와의 차이는 아래와 같이 정리할 수 있다.