Indexed
This annotation marks the field as indexed in MongoDB
@QueryEntity @Document public class User { @Indexed private String name; ... }
Compound Indexes
MongoDB supports compound indexes, where a single index structure holds references to multiple fields.
@QueryEntity @Document @CompoundIndexes({ @CompoundIndex(name = "email_age", def = "{'email.id' : 1, 'age': 1}") }) public class User { // }
Transient
As you would expect, this simple annotation excludes the field from being persisted in the database.
public class User { @Transient private Integer yearOfBirth; // standard getter and setter }
Field
@Field indicates the key to be used for the field in the JSON document
@Field("email") private EmailAddress emailAddress;
References
http://www.baeldung.com/spring-data-mongodb-index-annotations-converter