Wonder: Is MongoDB _id unique by default? Wonder: Is MongoDB _id unique by default? mongodb mongodb

Wonder: Is MongoDB _id unique by default?


All documents contain an _id field. All collections (except for capped ones) automatically create unique index on _id.

Try this:

db.system.indexes.find()


According to MongoDB's manual the answer is yes, it's unique by default:

MongoDB creates the _id index, which is an ascending unique index on the _id field, for all collections when the collection is created. You cannot remove the index on the _id field.


For the most part, _id in mongodb is unique enough. There is one edge case where it's possible to generate a duplicate id though:

If you generate more than 16,777,215 object ids in the same single second, while running in one process while on the same machine then you will get a duplicate id due to how object ids are generated. If you change any one of those things like generating an id in a different process or on a different machine, or at a different unix time, then you won't get a duplicate.

Let me know if you ever manage to pull this off with a realistic use case. Apparently google only gets around 70,000 searches a second and those are all processed on different machines.