我在Node.js中实现了一些验证程序。我通过Mongoose将每个验证存储在我的MongoDB中,并为它设置了expires属性,因此一段时间后它将被删除。喜欢这个
var verification = new Schema({
// something else
createdAt: {
type: Date,
expires: '1d',
default: Date.now,
},
});
但我想知道该文档何时被删除。所以我可以做其他事情,比如删除与该验证相关的文档。我尝试过使用post()
个钩子,
verification.post('remove', function(){
// do something else
};
但似乎这不会起作用,因为它在应用程序级别上。 MongoDB直接删除了doc,因此remove()
不会被调用。
答案 0 :(得分:2)
您无法知道何时删除文档,因为MongoDB会在后台任务中删除过期的文档。目前无法检查哪些文件已被删除。
如果您确实需要此功能,则可以创建一个后台作业,该作业将每隔60秒从您自己的馆藏中删除文档,然后通知您哪些文档已被删除。