Spring Data MongoDB如何以编程方式分配到期时间

时间:2017-05-14 16:59:56

标签: mongodb spring-data

我无法在任何Spring-Data文档中找到,为MongoDB中的文档分配过期时间的方法是什么。 任何人都可以帮忙举个例子吗? 感谢。

2 个答案:

答案 0 :(得分:10)

您可以使用@Indexed注释的expireAfterSeconds属性对类型为Date的字段执行此操作。粗略地说:

@Document
public class SomeEntity {

    String id;

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

   // rest of code here

}

或者通过操纵MongoTemplate

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

答案 1 :(得分:0)

谢谢,但是整个文档是否已过期并被删除,或者只是 场?

根据MongoDB文档https://docs.mongodb.com/manual/core/index-ttl/ TTL索引用于从集合中删除文档。

因此,整个文档将被删除,而不是索引字段的唯一名称。

Nb:索引必须位于“日期”字段上,否则TTL将不适用

致谢