Unraveling MongoDB's Mystique: Decoding the Auto-generated _id

Table of contents

If you've ever worked with MongoDB, you're likely acquainted with the _id
field, which MongoDB auto-generates if an ID isn't provided explicitly. Now, let's delve into the structure of this auto-generated _id
in MongoDB.
The _id
is a 12-byte hexadecimal number designed to ensure the uniqueness of each document. While inserting a document, you have the option to provide your ID. However, if you opt not to, MongoDB automatically assigns a unique ID to every document.
These 12 bytes are structured as follows: the first 4 bytes represent the current timestamp, the next 3 bytes denote the machine ID, the subsequent 2 bytes signify the process ID of the MongoDB server, and the remaining 3 bytes represent a simple incremental value.
Subscribe to my newsletter
Read articles from Abhinav Jha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Abhinav Jha
Abhinav Jha
Software Engineer