728x90
연습을 위해 MongoDB 클라이언트를 실행합니다.
- Database 생성
새롭게 존재하지 않는 Database를 생성하기위해 명시적으로 생성하는 명령어가 필요하지 않습니다. Database를 전환하는 명령어를 입력하고, 데이터를 insert하면 자동으로 Database와 Collection이 자동으로 생성됩니다.
존재하지 않는 ‘testDB’ 를 생성해보겠습니다. ‘testDB’는 대신 원하시는 명칭으로 사용하시면 됩니다.
use testDB db.testcollection.insertOne( { x : 1 } )
MongoDB클라이언트를 refresh해보시면 Database와 Collection이 생성 되었음을 알 수 있습니다.
‘insertOne’은 Document 하나를 입력하는 명령어 입니다.
2. Collection 생성
이번에는 새롭게 존재 하지 않는 Collection 을 생성 해봅니다.
db.test2.insertOne({ x : 2})
test2 Collection이 생성되었습니다.
Collection은 Document를 하나 insert해도 되지만, Index를 생성해도 Collection이 생성됩니다.
db.test3.createIndex({ x : 1})
3. 명시적인 Collection 생성
db.createCollection(<Collection 명칭>, { capped: <boolean>, autoIndexId: <boolean>, size: <number>, max: <number>, storageEngine: <document>, validator: <document>, validationLevel: <string>, validationAction: <string>, indexOptionDefaults: <document>, viewOn: <string>, pipeline: <pipeline>, collation: <document> } )
옵션 내용
Field | Type | Description |
---|---|---|
capped |
boolean | capped collection(제한된 크기만 저장) , true 로 값을 지정할 경우 반드시 ‘size’ 옵션을 통해 최대값을 설정해야만 합니다. |
autoIndexId |
boolean | false로 입력할경우 _id 필드에 자동 index 생성이 disable됩니다. |
size |
number | capped collection에서 최대 bytes, 최대 bytes에 도달 할 경우, MongoDB는 오래된 Documents를 지웁니다. |
max |
number | capped collection 에서 최대 Document 수, size 옵션이 우선함, max 옵션이 우선하게 하려면 충분한 size옵션을 주어야 합니다. |
더 자세한 옵션 내용은 아래 링크를 참조하세요.
4. Capped Collection
Cappped Collection 이란?
- 최초 제한된 크기로 생성된 공간 내에서 만 데이터를 저장할 수 있고, 최초 공간이 모두 사용되면 다시 처음으로 돌아가서 기존 공간을 재사용하는 타입의 Collection
- 로그 데이터 처럼 일정한 기간 내에서 만 저장, 관리할 필요가 있는 데이터에 효과적인 타입
100000 바이트 크기의 log 라는 명칭의 capped collection Collection 을 생성합니다.
db.createCollection( "log", { capped: true, size: 100000 } )
20000 바이트 한계치와 5000 Document 한계치를 가진 log2 라는 명칭의 Collection을 생성 합니다.
db.createCollection("log2", { capped : true, size : 20000, max : 5000 } )
‘size’ 옵션은 필수 값입니다. max 값에 도달 하지 않았더라도 size 값에 도달하면 ‘log2' Collection에 오래된 Document는 삭제될 것입니다.
아래는 해당 Collection이 capped 속성을 가지고 있는지 체크하는 함수입니다.
db.log2.isCapped()
capped collection 이 아닌 collection을 capped collection 으로 변경해보겠습니다. test2 Collection 을 변경합니다.
db.runCommand({"convertToCapped": "test2", size: 100000});
728x90
'Study > mongodb' 카테고리의 다른 글
05. MongoDB(몽고디비) Study - 데이터 읽기 (find) (3) | 2017.10.09 |
---|---|
02. MongoDB(몽고디비) Study - MongoDB 설치 및 시작 (0) | 2017.10.09 |
04. MongoDB(몽고디비) Study - 데이터 입력 (insert) (1) | 2017.10.09 |
01. MongoDB(몽고디비) Study - NoSQL 이란? 그리고 MongoDB 소개 (2) | 2017.10.09 |
00. MongoDB(몽고디비) Study - 목차 (0) | 2017.10.09 |