mongodb:过期不起作用

时间:2018-06-04 05:47:23

标签: node.js mongodb mongoose

在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
    }
]

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

正如我看到你的代码,它的权利。 此外,值应为字符串,您也可以使用'1m'。 您需要将mongoose更新为最新版本。

使用:npm update mongoose

有关详细信息,请在此处搜索“过期”:http://mongoosejs.com/docs/api.html