바닥코딩
MongoDB의 구조 본문
MongoDB는 위와 같은 계층적 구조를 가지고 있습니다. DataBase 안에 여러개의 Collection 이 존재하고 이 Collection안에는 여러개의 Document가 있습니다. 이번 포스트에서는 각강에 내용에 대해 자세히 알아보겠습니다.
Document
mongoDB와 같은 경우는 JSON과 비슷한 형태인 BSON구조의 데이터를 가지고 있습니다. 이것이 바로 Document입니다. JSON과 같이 key:value 와 같은 형태로 데이터를 관리합니다.
예를 들어 사람의 이름과 나이, 전화번호데이터로 관리한다면
{
name : "kim",
age : "29",
hpNo : "010-1111-1111"
}
Document는 위와 같은 형태를 가지게 됩니다. 여기서 일반적으로 우리가 key라고 생각하는 name, age, hpNo를 field 라고하며 각 필드의 값을 value라고 칭합니다 이러한 구조를 BSON 구조라고 합니다.
이러한 BSON은 정말 다양하게 표현할 수 있습니다,
{
name : {first:"kim", last : "dk"}
age : "29",
hpNo : "010-1111-1111",
birth : new Date(Jun 17, '2023')
}
위와 같이 BSON안에 BSON을 넣는것도 가능하며 Date 함수를 통해 날짜를 삽이하는 것도 가능합니다.
Collection
collection은 앞서 설명한 Document의 그룹입니다. RDB로 생각하면 table에 해당합니다. 테이블로 생각하면 어려운 개념은 아지만 한가지 큰 차이가 있습니다 RDB의 table과 달리 collection은 scheme-less에 해당하기 때문에 하나의 collection 하위 document는 모두 같은 구조를 가지고 있을 필요가 없습니다 예를 들면 여기서 나오는 함수들은 추후에 다루겠지만,
> db.user.find().pretty()
{
"_id" : ObjectId("5f504be9fc907fec200b55ad"),
"username" : "karoid",
"password" : "1111"
}
{
"_id" : ObjectId("5f504dedfc907fec200b55ae"),
"username" : "John",
"password" : 4321
}
{
"_id" : ObjectId("5f504dedfc907fec200b55af"),
"username" : "K",
"password" : 4221
}
위와 같이 같은 구조의 document 여러개를 가질 수도 있으며 반대로
> db.user.find().pretty()
{
"_id" : ObjectId("5f504be9fc907fec200b55ad"),
"username" : "karoid",
"password" : "1111"
"hpNo" : "010-1234-5678"
}
{
"_id" : ObjectId("5f504dedfc907fec200b55ae"),
"username" : "John",
"password" : 4321,
"gender" : "male"
}
{
"_id" : ObjectId("5f504dedfc907fec200b55af"),
"username" : "K",
"password" : 4221,
"email" : "aaaa@gmail.com"
}
위와 같이 구조가 다른 Document의 그룹일 수도 있습니다.
MongoDB 데이터베이스는 이러한 document들과 그로 이루어진 Collection들의 그룹으로 이루어져 있습니다. 마지막으로 쉬운 이해를 위해 RDBMS와 MongoDB를 비교해보 포스팅 마치겠습니다.
'데이터 베이스 > MongoDB' 카테고리의 다른 글
Compass를 이용한 DB서버 접속 및 생성 (0) | 2023.06.17 |
---|---|
BSON (0) | 2023.06.17 |
MongoDB는 왜 빠른가? (1) | 2023.06.17 |
MongoDB 설치하기 (0) | 2023.06.17 |
MongoDB란 (0) | 2023.06.17 |