MongoDB 구조

가장 처음 기술했던대로 MongoDB를 잘 이해하려면, 표 형식의 RDBMS와 유동적인 형태의 NoSQL의 차이점을 잘 인지해야한다.

일단 MongoDB은 Database - Collection - Document 의 형식으로 이루어져 있다

  1. Database
    • 물리적 컨테이너
    • 한 개의 데이터베이스 아래에 여러개의 컬렉션이 존재

  2. Collection
    • Document의 그룹
    • RDBMS로 비교하면 테이블과 같은 개념
    • but 테이블과 달리 스키마를 강요하지 않음. 하나의 Collection에 있는 Document지만 서로 다른 필드일 수 있음
    • 그러나 하나의 Collection에 있는 Document는 서로 유사하거나 관련의 목적을 가지고 있음

  3. Document
    • Key와 Value의 집합으로 이루어져 있는 동적 스키마

Document

BSON 형태

앞서 표현했듯이 Key와 Value의 데이터 구조를 가지고 있고 JSON객체와 유사하다.
필드의 값으로 여러 형태가 지원되며 다른 Document나 배열이나 Document 배열 등도 포함될 수 있다.

‘JSON 객체와 유사’ 하다고 표현한 이유는 JSON 형태로 저장되지 않기 때문이다.
MongoDB는 데이터 레코드를 BSON 형식으로 저장한다.

BSON은 JSON의 이진표현법이며 더 많은 유형의 데이터를 포함한다
JSON에서 지원하는 타입 표준 데이터 유형 외에 추가 유형도 지원하는 것이다.

ObjectId

RDBMS의 Primary key는 DB에서 서로가 중복되지 않도록 만들어낸다. 하지만 MongoDB 등의 분산데이터베이스에서는 key를 서버가 아닌 클라이언트에서 만든다

02.png

Collections에 데이터를 입력할 때, ObjectId를 수기로 넣어주지 않는다면 자동으로 값이 부여되며
모든 Document는 자신만의 ObjectId를 가지게 된다.

Atlas를 통해 데이터 생성해보기

자료 형식과 익숙해지기 위해 본격적인 코딩이나 crud구현에 앞서 Atlas를 통해 컬렉션을 생성하고 도큐먼트를 삽입하는 것을 해보려 한다.

5.jpg

생성하고자 하는 데이터베이스와 컬렉션 명을 지정해주면, 나의 목록에 만든 컬렉션이 나타난다.

6.jpg

여기서 도큐먼트를 생성하고자 하는 컬렉션에 진입한 뒤 ‘insert
document’를 선택하면 데이터 입력창이 뜨는데

_id는 ObjectId 형식으로 자동 생성되어 있음을 볼 수있다.

03.png

또 이외 데이터들은 내가 입력하고자 하는 타입을 선택해
Key : Value 형식으로 입력해주면 된다.

입력을 마치면 샘플데이터들처럼 내가 입력한 데이터들도 잘 반영되어 있다

04.png



참고 : MongoDB 공식 사이트 ‘MongoDB and the Document Model’ 가이드 영상

Updated: