我想使用mongoose通过TTL从我的用户架构中删除令牌数组中的令牌,
当我在数组外部使用createdAt: { type: Date, default: Date.now }, expireAt: { type: Date, default: undefined }
时,文档将被删除。
但是当我把它们放在数组中时 - 没有任何反应。
希望你能帮助我,这是我的代码:
var UserSchema2 = new mongoose.Schema({
email: {
type: String,
required: true
},
tokens: [{
access:{
type: String,
required: true
},
token:{
type: String,
required: true,
},
createdAt: { type: Date, default: Date.now },
expireAt: { type: Date, default: undefined }
}]
});
UserSchema2.index({"expireAt": 1 }, { expireAfterSeconds: 5 } );
这里是保存文档的中间件:
app.get('/test', (req, res) => {
var tokens = [];
tokens.push({access: 'abc', token: 'myToken123', expireAt: new Date(req.query.date)});
var user = new User2({
email: 'example@gmail.com',
tokens: tokens,
})
user.save().then( (doc) => {
res.send(doc);
}).catch( (err) => {
res.send(err);
});
});