我无法在任何Spring-Data文档中找到,为MongoDB中的文档分配过期时间的方法是什么。 任何人都可以帮忙举个例子吗? 感谢。
答案 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将不适用
致谢