MongoDB 필드 타입
필드 타입
MongoDB는 아래와 같은 필드 타입을 지원한다.
double
소수점 자리이다. 소수를 입력하면 다음의 타입으로 지정된다.
string
문자열 타입이다. UTF-8로 변환하여 저장된다.
object
임의로 Object로 지정할 수 있다. 대부분 JSON으로 많이 쓴다.
array
배열을 넣을 수 있다. 이 배열 내부 요소들은 double부터 maxKey까지 심지어 array안에 array를 넣을 수도 있다.
binData
바이너리 데이터이다. 바이너리 파일 자체를 올릴 수 있는데 document 한 개의 제한이 16mb이기 잘 생각해야한다. 물론 데이터를 나눠서 올릴 수 있는 gridfs로 다 올릴 수도 있다.
objectId
고유한 id를 나타낼때 쓰는 타입이다. 12Bytes로 구성되어있으며 각 바이트마다 의미가 있다. 생성된 초단위로 나타내는 4Bytes 타입스탬프와 MAC주소와 프로세스 값을 참고하여 만들어진 5Bytes 임의의 값, 그리고 임의의 값으로 만들어지는 3Bytes값으로 이루어져있다.
bool
true, false로 구성된 불 타입이다.
date
날짜를 나타내는 타입이다. UTC datetime으로 나타낸다.
null
해당 필드에 null이 들어가있을 때 나타내는 null 타입이다.
regex
정규식 타입이다. UTF-8로 변환하여 저장된다.
javascript
javascript 코드를 넣어 놓은 타입이다.
int
32bit 정수형 타입으로 좀 더 긴 정수는 long을 쓴다.
timestamp
Date 타입과는 좀 더 다른 타입으로 64bit로 이루어져있다. 32bit time_t값과 32bit의 증분 서수로 이루어져있다. 가령 같은 시간에 만들어진 두 개의 document가 있다고 해도 먼저 만들어진 값의 경우 더 나중의 값을 받게된다. ex) Timestamp(1673911117, 1), Timestamp(1673911117, 2)
long
64bit 정수형 타입으로 점 더 짧은 정수는 int를 쓴다.
decimal
128bit 십진수 기반 고정 소수점 유형이다. 정밀한 값을 요할때 사용 가능한 타입이다.
minKey
내부적인 유형을 나타내는 타입으로 유형에 관계없이 모든 값보다 작다.
maxKey
내부적인 유형을 나타내는 타입으로 유형에 관계없이 모든 값보다 크다.