在工作過程中,我們難免會遇到這樣的問題,我們想保存一些數據,但是我們對這些數據的要求並不高,有時候往往只是想要某個時間范圍內的數據,比如我們如果永遠只關心從當前時間往前推半年內的數據特性,那么我們就不需要將所有數據都保存起來,因為不僅浪費磁盤空間,而且隨着數據量的不斷累積,其他性能也會受到影響。
這時候我們迫切的需要一直方法能夠在我們插入數據的時候自動的幫我們去刪除我們過一段時間就不想要的數據,那么怎么實現呢。
在Mongodb內部,有一個特殊的索引,稱為TTL索引,通過該索引便可以實現上面的功能。什么事TTL 索引。怎么創建一個TTL索引呢。
TTL索引是一個特殊的索引,目前只支持在單個的字段上設置索引,而且該字段必須是日期類型或者是包含日期類型的數組類型。我們可以通過createIndex方法來創建一個TTL索引,具體如下所示:
db.collection.createIndex({“createtime”:1},{expireAfterSeconds:60});
通過設置expireAfterSeconds來控制文檔的過期時間,后面的數字單位為秒哦。其實,也就是mongodb在后台起了一個線程不斷的去查詢並刪除過期的文檔。
參考https://edu.aliyun.com/a/95071