我将用户令牌存储在用户字段中,我希望在一段时间后删除该令牌,该时间几乎相当于令牌的到期时间,这样令牌在一段时间后自动删除。 我正在使用架构作为:
const userSchema= new mongoose.Schema({
name:{
type:String,
default:"a",
trim:true,
lowercase:true
},
tokens:[{
token:{
type:String,
expire_at: {
type: Date,
default: Date.now,
index: { expires: '1m' }
}
}
}]
},{
timestamps:true
})
这种方法不起作用。 请建议一个方法来做这件事。
你需要的叫做“TTL索引”。 但是,如果您希望它是精确的,那么您将需要有您自己的机制来删除这些文档; 因为TTL不能保证这样的文档立即被删除。
db.users.createIndex( { "expire_at": 1 }, { expireAfterSeconds: 0 } )
当expire_at
等于now
或更高时,它将删除文档。
以下是文档:
https://docs.mongodb.com/manual/tutorial/expire-data/#expire-documents-at-a-specific-clock-time