MongoDB的日期类型:铸造失败
问题描述:
var MySchema = new Schema({
...
expireAt: { type: Date, default: Date.now },
...
});
如果我用这个模式一切正常,但如果我设置更复杂的默认这样的:MongoDB的日期类型:铸造失败
var MySchema = new Schema({
...
expireAt: { type: Date, default: (Date.now + 1000)},
...
});
在创建显示以下错误:
CastError: Cast to date faile for value "function now() .....
我试图保持出价值,但仍然问题铸造
var t = Date.now + 1000;
var MySchema = new Schema({
...
expireAt: { type: Date, default: t},
...
});
也尝试与new Date()
...但现在的方式。
我需要这个字段来检查TTL的expireAt,所以我认为我不能从Date
设置不同的类型。
有什么建议吗?
答
您可以设置到期在创建的领域的模式,如:
new Schema({ createdAt: { type: Date, expires: 60*60*24 }});
与上面的代码中创建的文件在24个小时后就会过期。
其实我希望整个对象将被删除,而不仅仅是字段 – pittuzzo
是的,它会删除整个文档。 –
我试过了,但它似乎不工作。我在我的模式上设置了'expireAt:{type:Date,expires:60}'并保留'MySchema.index({“expireAt”:1},{expireAfterSeconds:0});'。 60秒后,记录仍在我的数据库中。 – pittuzzo