바닥코딩

MongoDB의 구조 본문

데이터 베이스/MongoDB

MongoDB의 구조

개발공부개발공부 2023. 6. 17. 21:19

 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