Mongoose / MongoDB的TTL通知?

看了看MongoDB和Mongoose文档,看不出这是否可能。 我会告诉你,我写了没有代码试图做到这一点,因为我找不到任何东西来钩。

我正在寻找的是在MongoDB文档(通过Mongoose插入万一有问题)上设置TTL到期后,我希望应用程序在收集文档时popup通知。 有没有办法做到原生的MongoDB,还是我必须自己做一些事情(如投票)?

当应用程序没有通过TTL索引删除MongoDB文档时得到通知的服务器端挂钩。

但是,TTL索引只是一个服务器端TTL线程使用的基于date的索引,每分钟唤醒一次,并删除符合到期条件的新文档。

如果你想添加一些on-delete钩子,我会build议编写你自己的过期脚本,并通过cron或等价的方式将其作为计划任务运行。 这个脚本可以首先运行一个查询来查找准备过期的匹配文档,然后在文档实际删除之前实现应用程序需要的任何通知。

这是一个mongoose插件 ,可以帮助你。 它实现了TTLfunction,每次收割者执行时都会调用onReap函数。

 var ttl = require('mongoose-ttl'); var schema = new Schema({..}); schema.plugin(ttl, { ttl: 'the time each doc should live in the db (default 60 seconds)', interval: 'how often the expired doc reaper runs (default 5 mins)', onReap: 'callback passed to reaper execution' }); 

应该提到这个插件不使用本地MongoDB TTLfunction。