[英]Can't filter embedded document already sliced in mongodb in spring boot
[英]Java Spring Boot embedded MongoDB doesn't trigger TTL removal
我正在嘗試為短暫的 collections 測試 MongoDB TTL 功能。 在字段上使用 @Indexed 注釋,如下所示:
@Indexed(name = "deleteAt", expireAfterSeconds = 5)
private Date deleteAt;
在構造函數中,我將 deleteAt 初始化為this.deleteAt = new Date()
,並且我希望在將我的 Document 插入 Mongo 之后,在它的 TTLManager 運行之后,這個集合將被刪除。 但是即使等待幾分鍾也沒有幫助它沒有被刪除。 我在 mongo shell 中運行db.serverStatus().metrics.ttl
並返回:
[
{
"deletedDocuments": 0,
"passes": 8
}
]
並且命令db.adminCommand({getParameter:1, ttlMonitorEnabled: 1})
返回:
[
{
"ok": 1,
"ttlMonitorEnabled": true
}
]
我的代碼有問題嗎? 或者是因為嵌入式 mongo 不支持這一點,是否可以配置嵌入式 mongo 使其工作? 我正在使用https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo用於嵌入式 MongoDB 和默認設置。
它只是 MongoDB 服務器( mongod
)功能
mongod
中的后台線程讀取索引中的值並從集合中刪除過期文檔。
https://docs.mongodb.com/manual/core/index-ttl/#delete-operations
嵌入式 MongoDB 框架使用MongodProcess
class “模擬” mongod
進程,僅用於部署基本的嵌入式服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.