您好,登錄后才能下訂單哦!
TTL索引(time to live index,具有生命周期的索引),這種索引允許為每一個文檔設置一個超時時間。一個文檔到達預設置的老化程度之后就會被刪除。這種類型的索引對于緩存問題(比如會話的保存)非常有用。
在創建索引的時候,順便指定expireAfterSeconds選項就可以創建一個TTL索引,該集合也就屬于TTL集合了。
// 創建TTL索引, 設置超時時間為24小時 db.ttl.ensureIndex({date:1},{expireAfterSeconds:24*60*60});
這樣就在"date"字段上創建了一個TTL索引。如果一個文檔的"date"存在并且它的值是日期類型,當服務器時間比文檔的"date"字段的時間晚expireAfterSeconds秒時,文檔就會被刪除。
為了防止活躍的會話被刪除,可以在會話上有活動發生時將"date"字段更新為當前時間。只要"date"距離當前時間達到24小時,文檔就會被刪除。
MongoDB每分鐘對TTL索引進行一次清理,所以不應該依賴以秒為單位的時間來保證索引的存活狀態。可以使用collMod命令來更改expireAfterSeconds的值:
db.runCommand( { collMod:"ttl", index:{ keyPattern:{date:1}, expireAfterSeconds:3600 } } )
在一個給定的集合上可以有多個TTL索引。TTL索引不能是復合索引,但是可以像普通索引一樣用來優化排序和查詢。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。