When is the _id index used?
In MongoDB, documents stored in a collection require a unique _id
  field that acts as a primary key. MongoDB uses ObjectIds as the
  default value for the _id field if the _id field is not specified;
  i.e. if a document does not contain a top-level _id field, the MongoDB
  driver adds the _id field that holds an ObjectId. In addition, if the
  mongod receives a document to insert that does not contain an _id
  field, mongod will add the _id field that holds an ObjectId.


ObjectId is a 12-byte BSON type, constructed using:

a 4-byte value representing the seconds since the Unix epoch,
a 3-byte machine identifier,
a 2-byte process id, and
a 3-byte counter, starting with a random value.


MongoDB clients should add an _id field with a unique ObjectId. Using ObjectIds for the _id field provides the following additional benefits:


In the mongo shell, you can access the creation time of the ObjectId,
using the getTimestamp() method. 
Sorting on an _id field that stores
ObjectId values is roughly equivalent to sorting by creation time.


Alternatives- 
The following are common options for storing values for _id:


Use an ObjectId.
Use a natural unique identifier, if available. This saves space and avoids an additional index.
Generate an auto-incrementing number. See Create an Auto-Incrementing Sequence Field.
Generate a UUID in your application code. For a more efficient storage of the UUID values in the collection and in the _id index, store the UUID as a value of the BSON BinData type.
Index keys that are of the BinData type are more efficiently stored in the index if:
the binary subtype value is in the range of 0-7 or 128-135, and
the length of the byte array is: 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, or 32.
Use your driver’s BSON UUID facility to generate UUIDs. Be aware that driver implementations may implement UUID serialization and deserialization logic differently, which may not be fully compatible with other drivers. See your driver documentation for information concerning UUID interoperability.


for more detail- 
See MongoDB