Java Spring MongoDB : '_id' field mapping :
MongoDB requires that you have an '_id' field for all documents. If
you don’t provide one the driver will assign a ObjectId with a generated
value. The "_id" field can be of any type the, other than arrays.
The following outlines what field will be mapped to the '_id' document field:
-
A field annotated with
@Id
(org.springframework.data.annotation.Id
) will be mapped to the '_id' field.
-
A field without an annotation but named 'id' will be mapped to the '_id' field.
-
The default field name for identifiers is '_id' and can be customized via the
@Field
annotation.
Examples for the translation of '_id'-field definitions
Field definition | Resulting Id-Fieldname in MongoDB |
---|---|
String id |
_id |
@Field String id |
_id |
@Field('x') String id |
x |
@Id String x |
_id |
@Field('x') @Id String x |
_id |
Source : How the '_id' field is handled in the mapping layer