MongoDB 기초

omnigi·2022년 3월 24일
0

백엔드

목록 보기
3/8

문서란?

문서는 한개이상의 키-값의 쌍으로 이루어져 있습니다.

{
	"id":ObjectID("12349082387"),
    "username":omnigi,
    "name": {first:"D.Y", last:"KIM"}
}

문서는 BSON(바이너리 형태의 JSON) 형태로 저장됩니다.

새로운 문서를 만들면 _id라는 고윳값을 자동으로 생성하는데, 이 값은 시간, 머신아이디, 프로세스아이디, 순차번호로 되어 있어 값의 고유함을 보장합니다.

여러 문서가 들어 있는 곳을 컬렉션이라고 합니다. 기존 RDBMS에서는 테이블 개념을 사용했지만 MongoDB는 다른 스키마를 가지고 있는 문서들이 한 컬렉션에서 공존할 수 있습니다.

ex

{
	"id":ObjectID("12349082387"),
    "username":omnigi,
},
{
	"id":ObjectID("123490823879"),
    "username":omnigi2,
    "phone":"010-1234-5678"
}

서버 하나에 데이터베이스를 여러개 가지고 있을 수 있고, 각 데이터 베이스에는 컬렉션이 존재하며,
컬렉션 내부에는 문서들이 들어 있습니다.

NoSql에서는 모든것을 문서 하나에 넣습니다.

{
	_id:ObjectId,
    title: String,
    body: String,
    username: String,
    createdDate: Date,
    comments: [
    	{
        	_id: ObjectId,
            text: String,
            createdDate: Date,
        },
    ],
}

mongoDB 이런 상황에서 보통 MongoDb는 댓글을 포스트 문서 내부에 넣습니다. 문서 내부에 또 다른 문서가 위치할 수 있는데 이를 서브 다큐먼트라고 합니다.

서브다큐먼트 또한 일반 문서를 다루는 것처럼 쿼리할 수 있습니다.

문서하나에 16MB만큼 데이터를 넣을 수 있습니다

0개의 댓글