这是我的代码示例:
var changesDB = new mongoose.Schema({
eventId: String,
date: Date
})
changesDB.index({ title: 1 }, { expireAfterSeconds : 60*60*24*30 });
它运行正常,但我需要删除连接到此集合的所有文件,因此我必须使用nodejs捕获此事件。 我该怎么做?
答案 0 :(得分:1)
从MongoDB 3.0开始,MongoDB中没有任何类型的回调机制;特别是,TTL索引没有这种机制。 TTL强制执行只是一个后台线程,每分钟查询已过期的文档,然后删除它们。如果您有相关的数据需要过期,我建议您只在应用程序中模仿TTL索引的操作,在那里您可以执行清理相关数据所需的任何额外逻辑。
或者,您可以使所有相关文档同时过期,因此它们将在大致相同的时间(在同一TTL传递中)被删除。