Sad Puppy 3 mongo DB사용법 :: 개발자 아지트

[ObjectId]

 

ObjectId는 MongoDB에서 기본적으로 사용하는 고유 식별자입니다. MongoDB의 각 문서는 고유한 _id 필드를 갖는데, 이 필드는 자동으로 생성되며 기본적으로 ObjectId 타입입니다. ObjectId는 12바이트의 BSON(비너리 JSON) 데이터로 구성되어 있습니다.

ObjectId의 구성 요소

ObjectId는 다음과 같은 12바이트로 구성됨

  1. 타임스탬프 (4바이트): ObjectId가 생성된 시간을 초 단위로 표현합니다. 이를 통해 객체가 생성된 시간 순서대로 정렬할 수 있음
  2. 랜덤 값 (5바이트): 머신의 고유성을 보장하기 위해 생성된 무작위 값
  3. 증가하는 카운터 (3바이트): 같은 머신에서 같은 시간에 생성된 ObjectId 간의 충돌을 방지하기 위한 증분 카운터

이러한 구조 덕분에 ObjectId는 고유성과 생성 시간 정보를 효율적으로 보장할 수 있음

ObjectId 예시

MongoDB에서 자동 생성된 ObjectId

507f191e810c19729de860ea
 
 

[필드의 속성]

 

1. required: true

required: true는 해당 필드가 반드시 값을 가져야 한다는 것을 의미합니다. 즉, 문서를 저장할 때 이 필드가 비어 있으면 유효성 검사 오류가 발생

  • 특징:
    • 필드에 값이 없으면 문서가 저장되지 않음
    • 필수 필드로 지정된 값이 없으면 Mongoose는 에러를 발생시킴

2. unique: true

unique: true는 해당 필드에 대해 고유 인덱스를 생성하여, 중복된 값을 허용하지 않도록 합니다. 즉, 데이터베이스에 저장된 문서들 간에 이 필드의 값이 중복될 수 없음

  • 특징:
    • 필드에 대해 고유 인덱스가 생성됨
    • 중복된 값을 가진 문서를 저장하려고 하면 중복 키 오류가 발생함
    • 인덱스가 생성되어 조회 성능이 향상될 수 있음

+ Recent posts