如何知道有过期属性的文档被删除?

时间:2014-06-20 07:25:58

标签: node.js mongodb mongoose

我在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()不会被调用。

1 个答案:

答案 0 :(得分:2)

您无法知道何时删除文档,因为MongoDB会在后台任务中删除过期的文档。目前无法检查哪些文件已被删除。

如果您确实需要此功能,则可以创建一个后台作业,该作业将每隔60秒从您自己的馆藏中删除文档,然后通知您哪些文档已被删除。