MongoDB 自動刪除過期數據,TTL 索引時效性功能

TTL索引是一種特殊索引,通過這種索引MongoDB會自動重新設置集合的文檔。這對於某些類型的信息來說是一個很理想的特性,例如機器生成的事件數據,日誌,會話信息等,這些數據都只需要在數據庫中保存有限時間。

使用官方方式及網上很多提供方式,會以索引的方式進行時間到期自動刪除數據的方式。

環境:MongoDB v4.2.0

但是作者實際測試過後,發現透過索引方式好像只能限定最多3600秒以內。

如官方語法

Schema設定

這種方式發現index並非會自行建立,但是將expires設定於3600秒就會建立索引

最後作者只能使用以前看過一篇的技巧以function方式帶入,

express session connect mongo 也是直接將expires時間加上,

可參考此方式解決

以現在時間 增加 7 * 24 * 60 * 60 * 1000 (7天) 毫秒為單位。

到期後約 3~5分鐘 就自動消失,也不是馬上refresh就消失,

以上述到期算法大概會約 7天又五分鐘後消失,所以如果想要準確7天就消失可以自行減300,000毫秒

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *