
MongoDB는
👉 문서(Document) 기반 NoSQL 데이터베이스이다.
관계형 데이터베이스처럼 테이블과 행(row)을 사용하는 대신,
JSON 형태의 문서(Document) 를 저장 단위로 사용한다.
JSON 형태의 데이터를 스키마 없이 저장하고,
수평 확장(Scale-out)에 최적화된 NoSQL 데이터베이스
| 항목 | RDBMS |
|---|---|
| 스키마 | 사전 정의 필수 |
| 구조 변경 | ALTER TABLE 비용 큼 |
| 확장 방식 | 수직 확장(Scale-up) 중심 |
| 데이터 형태 | 정형 데이터 위주 |
👉 이러한 데이터는 테이블 구조로 미리 고정하기 어렵다
Database
└── Collection
└── Document (JSON/BSON)
MongoDB는 Collection 안에 Document를 저장하는 구조를 가진다.
| RDBMS | MongoDB |
|---|---|
| Database | Database |
| Table | Collection |
| Row | Document |
| Column | Field |
MongoDB는 내부적으로 BSON(Binary JSON) 포맷을 사용한다.
이는 JSON을 확장한 이진(Binary) 형태로, 성능과 타입 표현이 강화된 구조다.
{
"_id": ObjectId("65b1f9a1a9c8e0a1a1111111"),
"name": "Kim",
"age": 30,
"skills": ["linux", "docker", "kubernetes"],
"created_at": ISODate("2026-01-01T10:00:00Z")
}
❌ 아무 규칙도 없다 → 오해
⭕ DB가 스키마를 강제하지 않는다
예를 들어 같은 Collection 안에서도 다음과 같이 저장 가능하다.
{ "name": "Lee", "age": 25 }
{ "name": "Park", "email": "park@test.com" }
즉,
MongoDB는
정형 데이터보다 유연한 데이터,
단일 서버보다 분산 환경에 최적화된 데이터베이스다.