我写了一个在Heroku + MLab上托管的MEAN应用程序,我想知道如何为数据库运行日常维护。
数据对象都与日期有关,我希望每周以某种方式运行一个脚本来删除所有过期日期的条目。 Heroku是否有一些代码可以写一些可以在设定的时间间隔内执行此数据清理的代码?
P.S。我是个菜鸟。
答案 0 :(得分:0)
TTL(生存时间)是您正在寻找的概念,而mongo的方法就是它!
如果您使用没有mongoose的本机mongo驱动程序,则必须在声明索引时声明它
db.MYDB.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )
这里我们为(已)现有字段createdAt创建一个索引,它在3600秒后到期
如果您使用mongoose并在文档中使用日期字段类型,则可以将expires
作为第二个参数传递
new Schema({ createdAt: { type: Date, expires: 3600 }});
在这种情况下,文档有一个名为createdAt的字段,其日期为3600秒,即1小时
希望它有所帮助!