
MongoDB의 _id 필드는 ObjectId 타입입니다.
ObjectId 타입은 12바이트의 고유한 식별자로 구성되며, 다음과 같은 정보를 포함합니다.
- 4바이트의 타임스탬프
- 3바이트의 머신 ID
- 2바이트의 프로세스 ID
- 3바이트의 노드 ID
이러한 정보를 조합하여 고유한 ObjectId를 생성합니다.
BSON::oid는 C++에서 사용하는 ObjectId 타입의 래퍼입니다.
따라서, MongoDBDriverServerApi::bsonSerialize를 사용하여 serialize 한 데이터의 타입이 BSON::oid일 경우, 실제로 MongoDB의 _id 필드에 저장되는 타입은 ObjectId 타입입니다.
이 타입이 다른 타입과 어떻게 다를까요? 다른 타입과 가장 큰 차이점은 ObjectId 타입이 고유한 식별자로 사용되며, 타임스탬프, 머신 ID, 프로세스 ID, 노드 ID를 포함하고 있기 때문입니다.
이러한 정보를 포함하고 있기 때문에 ObjectId 타입은 다른 타입과 구별됩니다.
2025-05-21 10:30