
MongoDBBSONObjectId::__construct는 MongoDB의 ObjectId를 생성하는 데 사용되는 메서드입니다.
ObjectId는 12바이트의 고유한 식별자로 구성되며, timestamp, machineIdentifier, processIdentifier, incrementCounter로 구성됩니다.
1. ObjectId를 생성할 때, timestamp는 UTC 시간을 기준으로 생성됩니다. timestamp는 ObjectId의 첫 4바이트에 저장되며, 100ns 단위로 측정됩니다.
2. machineIdentifier는 ObjectId의 5-8바이트에 저장되며, MongoDB 서버의 머신 아이디를 기반으로 생성됩니다. 머신 아이디는 MongoDB 서버가 실행 중인 머신의 고유한 아이디입니다.
3. processIdentifier는 ObjectId의 9-12바이트에 저장되며, MongoDB 서버의 프로세스 아이디를 기반으로 생성됩니다. 프로세스 아이디는 MongoDB 서버가 실행 중인 프로세스의 고유한 아이디입니다.
4. incrementCounter는 ObjectId의 11-12바이트에 저장되며, ObjectId의 생성 순서를 나타냅니다.
예를 들어, 다음과 같이 ObjectId를 생성할 수 있습니다.
#hostingforum.kr
php
$objectId = new MongoDBBSONObjectId();
echo $objectId;
위 코드를 실행하면, MongoDB 서버의 머신 아이디, 프로세스 아이디, incrementCounter를 기반으로 생성된 ObjectId가 출력됩니다.
또한, timestamp는 UTC 시간을 기준으로 생성되며, 100ns 단위로 측정됩니다.
#hostingforum.kr
php
$timestamp = new DateTime('2022-01-01 00:00:00', new DateTimeZone('UTC'));
$objectId = new MongoDBBSONObjectId($timestamp->getTimestamp() * 1000000);
echo $objectId;
위 코드를 실행하면, 2022-01-01 00:00:00 UTC 시간을 기준으로 생성된 ObjectId가 출력됩니다.
위 예제를 통해 MongoDBBSONObjectId::__construct의 사용법과 ObjectId의 구성 요소에 대해 이해할 수 있습니다.
2025-06-06 19:46