設定mongodb定時清除文章
阿新 • • 發佈:2018-12-26
轉自:http://www.cnblogs.com/huangxincheng/p/5718038.html
現在我想大家對ttlIndex有了大概的認識了,下面我們看看怎麼建立,我使用的GUI工具是robomongo,大家可以在官網上下載一下即可。。。然後我們
要查詢一下https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/#db.collection.createIndex,看看這種collection
怎麼建立。
db.collection.createIndex(keys, options)
從這個options中的expireAfterSeconds引數來看,這個value是一個int,並且是以second為單位,然後我們可以看到,這個ttlIndex是需要建立在docment
的field上面的,然後我們繼續往下看。
1 |
To
create a TTL index, use the db.collection.createIndex() method with the expireAfterSeconds option on a
field whose value is either
a date or an array that contains date values.
|
從這句話中其實可以看到,這個field欄位要麼是date,要麼是array中含有date欄位,ok,看完這裡,我們都明白了,接下來,我們建立一個簡單的planeollection,
並且date的過期時間是2s,主要是用來測試一下嘛。。。
ok,其實就是這麼簡單,然後我們過60s之後再檢視一下資料,可以看到,資料已經沒有啦~~~
可能有些人就有疑問了,為什麼這裡要說最多60s之後再檢視資料,當然是有原因的,因為mongod有一個background task,60s啟動一次進行index scan,
如果過期,那麼就會進行清除,不信的話,你可以看下官網的描述哦。