使用 mongoose 可以成功為某個 document 新增過期時間:
#但是,資料在設定的過期時間之後仍然沒有刪除,官方的文檔說mongo後台服務每隔一分鐘輪詢一次過期設置,但這已經不是幾分鐘延遲的事了,感覺上是expire沒有生效的
漂亮男人2017-05-17 09:58:31
這個問題我自己解決了,重新看了下官方文檔 https://docs.mongodb.com/manu...
schema定義的索引必須與實際的資料相對應。
let myschema = new mongoose.Schema(
{
phone: {
type: String,
required: true
},
code: {
type: String,
required: true
},
createAt: {
type: Date,
default: Date.now(),
index: { expires: 60*1 } //设置验证码的有效时间为 10 分钟
}
}, {collection: 'sms'}
);
let MyModel = db.model('MyModel', myschema);
let arr = {
phone: req.body.phone,
code: code,
createAt: Date.now()
}
schema 中的 createAt 必須與 arr 中的 createAt 對應,且必須給定時間,這樣才會生效。
大家讲道理2017-05-17 09:58:31
幾點建議:
1、先檢查索引的實際TTL情況;您貼出來的部分,感覺上面程式碼和下面的截圖不一致
2、看看server.Status中的ttl的部分
db.serverStatus().metrics.ttl
供參考。
Love MongoDB! Have fun!