我怎么知道一个文档与过期属性被删除



我在Node.js中实现了一些验证程序。我有每个验证存储在我的MongoDB由Mongoose,并为它设置一个过期属性,所以它会在一段时间后被删除。这样的

var verification = new Schema({
  // something else
  createdAt: {
    type: Date,
    expires: '1d',
    default: Date.now,
  },
});

但是我想知道那个文档什么时候被删除了。所以我可以做其他事情,比如删除与验证相关的文档。我试过使用post()钩子,

verification.post('remove', function(){
  // do something else
};

但这似乎不起作用,因为它是在应用程序级别。文档被MongoDB直接删除,所以remove()不会被调用。

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

如果你真的需要这个功能,你可以创建一个后台作业,它将每60秒从你自己的集合中删除文档,然后通知你哪些文档被删除了。

最新更新