gpt4 book ai didi

Spring Data MongoDB 文档到期时间

转载 作者:行者123 更新时间:2023-12-01 13:25:44 32 4
gpt4 key购买 nike

我已经建立了一个简单的文档模型(如下)以及一个 Spring Data 存储库

@Document(collection = "users")
public class UserDocument {

@Id
private String userId;

@Indexed(expireAfterSeconds=3600)
private LocalDateTime registeredDate;
}

这似乎工作正常并在我设置的任何时间后删除用户文档 expireAfterSeconds到。但是,我不想输入 3600 的值,而是想从配置 .yml 中提取该数字。通常的添加方式 @Value("${config.file.path.of.expiry}")无法工作,因为 @Indexed要求该值是运行时常量,而 @Value 不是。

有没有其他方法可以在不使用 @Indexed(expireAfterSeconds=x) 的 Spring/Mongodb 中设置文档到期日期?

最佳答案

而不是使用 Indexed用于声明 Spring Data Mongo 将代表您创建的索引的注释……您可以使用 MongoTemplate 显式创建索引。实例。

@Value("${config.file.path.of.expiry}")
long expireAfterSeconds;

...

mongoTemplate.indexOps("users").ensureIndex(
new Index().on("registeredDate", Order.ASCENDING)
.expire(expireAfterSeconds)
);

这将允许您获取 expireAfterSeconds 的值从运行时的配置文件而不是在注释中对其进行硬编码。

关于Spring Data MongoDB 文档到期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48330305/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com