node.js - 我如何知 Prop 有过期属性的文档已被删除?

标签 node.js mongodb mongoose

我正在 Node.js 中实现一些验证过程。我将每个验证都通过 Mongoose 存储在我的 MongoDB 中,并为其设置了过期属性,因此它会在一段时间后被删除。像这样

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

但我想知道该文档何时被删除。所以我可以做其他事情,比如删除与该验证相关的文档。我尝试过使用 post() Hook ,

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

但这似乎行不通,因为它是在应用程序级别上。该文档由 MongoDB 直接删除,因此不会调用 remove()

最佳答案

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

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

关于node.js - 我如何知 Prop 有过期属性的文档已被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24322047/

相关文章:

javascript - 使用 Mongoose 未将数据保存在 MongoDB 中

javascript - 如何处理for循环中nodejs的回调函数?

Node.js 最大并发连接数为 1000

html - 当 favicon 请求得到正常的 html 响应时会发生什么?

c++ - 使 mongo-cxx-driver 找不到包括

mongodb - 查找数组中的所有文档 - MongoDB 聚合

mongodb - 令人惊讶的缓慢插入到 mongodb 上限集合

javascript - Node.js 和 Express : How to return response after asynchronous operation

c++ - 使用 node-gyp 编译时 CFLAGS 在 Windows 上不起作用

javascript - 如何处理Node.js中未处理的异常