본문 바로가기

여러가지/DBMS

[mongoDB] 컬렉션 (Collection)

ㄱ. 캡드 컬렉션(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