Spring Data MongoDB how to assign expiration time programmatically

mongodb, spring-data

Solution

You can do it using `@Indexed` annotation's `expireAfterSeconds` attribute over a field whose type is `Date`.Roughly:

@Document
public class SomeEntity {

    String id;

    @Field
    @Indexed(name="someDateFieldIndex", expireAfterSeconds=3600)
    Date someDateField;

   // rest of code here

}

Or by manipulating a `MongoTemplate`:

mongoTemplate
    .indexOps(SomeEntity.class)
    .ensureIndex(new Index().on("someDateField", Sort.Direction.ASC).expire(3600));

Problem

I couldn't find in any of the Spring-Data documents, what is the way to assign expiration time to a document in MongoDB?

Original source

Related problems