ㄱ. 캡드 컬렉션(Capped Collection)
: 정해진 크기만큼의 용량을 갖는 컬렉션
a) 삽입 순서대로 문서 저장, b) 가득 차면 가장 오래된 문서부터 순서대로 삭제
> db.createCollection("<-컬렉션명->, { capped: true, size: 5242880, max: 1000 } ")
---------------------------------------------------------------------------------------------------------------------------------------------------------
(1) capped: true : 캡드 컬렉션(Capped Collection) 생성
(2) size: 캡드 컬렉션의 최대 크기 바이트 단위 지정
(3) max: 캡드 컬렉션의 최대 문서 수 지정
---------------------------------------------------------------------------------------------------------------------------------------------------------
ㄴ. 스토리지 엔진(storageEngine)
- mongoDB 기본 스토리지 엔진: WiredTiger
> db.createCollection("<-컬렉션명->, {
storageEngine: {
wiredTiger: {
configString: 'block_compressor=zlib'
}
}
})
ㄷ. 유효성 검증(validator)
> db.createCollection("<-컬렉션명->, {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name1", "name2"...],
properties: {
name1: {
bsonType: "string",
description: "must be a string and is required"
},
name2: {
bsonType: "int",
minimum: 0,
description: "must be an integer greater than or equal to 0 and is required"
}
...
}
}
},
validationLevel: "strict",
validationAction: "warn"
})
---------------------------------------------------------------------------------------------------------------------------------------------------------
- $jsonSchema : JSON 스키마 정의
- bsonType: 문서의 BSON 타입 정의
- required : 필수 필드
- properties : 문서의 각 필드 세부 규칙 정의
- description: 설명
- minimum: 필드 최소 값
---------------------------------------------------------------------------------------------------------------------------------------------------------
(1) validationLevel: 유효성 검사 수준 지정 (off, strict, moderate)
(2) validationAction: 유효성 검사 실패 시, 수행할 동작 지정 (error, warn)
---------------------------------------------------------------------------------------------------------------------------------------------------------
ㄹ. collation
: 문자열 비교 규칙 지정
> db.createCollection("<-컬렉션명-> , {
collation: { locale: "en", strength: 2 }
})
---------------------------------------------------------------------------------------------------------------------------------------------------------
(1) strength: 비교 강도
1: 대소문자 및 악센트 무시
2: 대소문자 및 악센트 무시
3: 대소문자 구분, 악센트 무시
4: 대소문자 및 악센트 구분
5: 문자 변형 구분
---------------------------------------------------------------------------------------------------------------------------------------------------------
ㅁ. 타임시리즈(timeseries)
> db.createCollection("<-컬렉션명-> , {
timeseries: {
timeField: "timestamp",
metaField: "metadata",
granularity: "seconds"
},
expireAfterSeconds: 3600
})
---------------------------------------------------------------------------------------------------------------------------------------------------------
- timeField: 타임스탬프 저장할 필드 이름
각 문서에 이 필드가 포함되어야 하며, 타임 시리즈 데이터를 시간순으로 정렬하고 관리하는 데 사용
- metaField: 선택, 메타데이터 저장할 필드 이름
- granularity : 시간 해상도 (seconds, minutes, hours)
---------------------------------------------------------------------------------------------------------------------------------------------------------
(1) expireAfterSeconds: 데이터 자동 삭제 TTL(Time-to-Live) 설정
---------------------------------------------------------------------------------------------------------------------------------------------------------
'여러가지 > DBMS' 카테고리의 다른 글
[DB] MySQL 설치 및 환경 구성 (0) | 2025.01.28 |
---|---|
[mongoDB] 사용 방법 (0) | 2024.07.15 |
[mongoDB] Linux 설치 (0) | 2024.07.15 |
[mongoDB] 설치 - Windows (0) | 2024.07.15 |
[MSSQL] CLI 설치 (0) | 2024.06.21 |