MongoDB의 ObjectID를 통해 데이터가 생성된 시간을 알 수 있다.
MongoDB에서 각 문서에는 기본적으로 _id 필드가 있으며, 이는 주로 ObjectId 타입을 사용하는데 ObjectId는 12바이트의 길이를 가지며, 이 중 첫 4바이트는 타임스탬프이다. 타임스탬프는 유닉스 타임(1970년 1월 1일부터 경과된 초 수)을 기준으로 하며, 따라서 이를 통해 문서가 생성된 시간을 알 수 있다.
예를 들어, ObjectId가 "507f191e810c19729de860ea"라면, 이 중 처음 8자리인 507f191e가 타임스탬프에 해당하는 것.
이 값을 16진수에서 10진수로 변환한 다음, 유닉스 타임스탬프로 변환하면 해당 문서의 생성 시간을 알 수 있다.
즉,
- ObjectId의 처음 8자리를 16진수로 추출
- 이 16진수 값을 10진수로 변환
- 변환된 값을 유닉스 타임스탬프로 해석하여 날짜와 시간으로 변환
-> 이 방법을 사용하면 두 개의 ObjectId를 비교하여 어느 데이터가 먼저 생성되었는지 확인할 수 있다
반응형
댓글