我正在尝试在MongoDB中创建TTL索引。我在这里读了Answer的答案,这很有帮助。
问题在于文档只是没有过期。这是代码:
var AcThSchema = new mongoose.Schema({
createdAt: {
type: Date,
expires: '1m',
default: Date.now
},
key: {
type: String,
required: true,
unique: true
}
});
我确实注意到的一件奇怪的事情是,当我使用值1代替Date.now作为createdAt的默认值时,文档确实在几秒钟后(可能是下次mongo的TTL进程运行时)被删除了>
为什么要删除默认值为1而不是Date.now的文档?
答案 0 :(得分:0)
到期应该在内部索引中。像这样
var AcThSchema = new mongoose.Schema({
createdAt: {
type: Date,
index: {
expires: '1m'
},
default: Date.now
},
key: {
type: String,
required: true,
unique: true
}
});