在mongoose 5.0.6中,我希望这个架构在创建后1分钟到期文档:
const InvitationTokenSchema = new Schema(
{
token: { type: String, required: true },
createdAt: { type: Date, default: Date.now, expires: '1m' },
userId: { type: Schema.Types.ObjectId, ref: 'User' },
},
{
usePushEach: true,
},
);
然而,它根本不起作用 - 所有文件都只保留在mongo中,而不是被移除。
在mongo shell中,getIndexes()
显示以下内容:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "mydb.invitationtokens"
},
{
"v" : 2,
"key" : {
"createdAt" : 1
},
"name" : "createdAt_1",
"ns" : "mydb.invitationtokens",
"expireAfterSeconds" : 60,
"background" : true
}
]
可能是什么原因?
答案 0 :(得分:0)
正如我看到你的代码,它的权利。
此外,值应为字符串,您也可以使用'1m'
。
您需要将mongoose更新为最新版本。
使用:npm update mongoose
有关详细信息,请在此处搜索“过期”:http://mongoosejs.com/docs/api.html