MongoDB ObjectId は、MongoDB で広く使用される一意識別子です。内部では 12 バイトで構成され、通常は 24 桁の 16 進数文字列として表示されます。
ObjectId は 4 バイトのタイムスタンプ、5 バイトのランダム値、3 バイトのインクリメントカウンターで構成されます。
ObjectId は内部的に 12 バイトで構成されています。1 バイトを 2 桁の 16 進数で表すため、文字列では通常 24 桁になります。
24 桁というのは文字列表現の長さであり、実際のバイナリサイズは 12 バイトです。
先頭 4 バイトには Unix タイムスタンプに関連する時間情報が含まれています。そのため、ObjectId から生成時刻を取り出すことができます。
ただし、正確な作成時刻を保存する必要がある場合は、専用の日時フィールドを別途保存することを推奨します。
指定時刻での ObjectId 生成は、開発テスト、テストデータ作成、MongoDB の時間範囲クエリや ID の並び順を確認する場合に便利です。
ObjectId は通常の MongoDB 利用に十分な一意性を提供しますが、数学的に絶対重複しないことを保証するものではありません。タイムスタンプ、ランダム値、カウンターなどの生成方式に依存します。
コメント 0