将文章归档后在某个ttl指定nodejs
所以我有两个集合。
-
active_posts集合
-
archived_posts集合
我想知道是否有一个npm模块或一个mongofunction,可以让一个活跃的post在存档(或发布)20天后移动到存档集合中。
我的文章架构是这个(临时):
var postSchema = new Schema({ title: {type:String}, created_time: {type: Date, default: Date.now}, archived: {type: Boolean, default:false} });
MongoDB中没有时间触发器默认执行此操作 。
以下是一些解决方法:
1.后台服务归档
您可以使用调度程序重复运行(比方说每5分钟),并检查已通过TTL的active_posts集合中的文档,然后将其传输到您的archived_posts集合。
阅读下面的堆栈溢出post,findNode.js的一些调度库:
有没有node.js的工作调度程序库?
以下是一些图书馆: node-cron , node-schedule , Agenda ,…
2.预定(延迟)归档
您可以在创build时安排每个文档的归档作业。
除了上面提到的库之外,你可以使用Kue ,它可以在一定的时间内安排一个任务。
提示 :MongoDB具有一个内置的function,可以在通过TTL之后删除文档,但是您可能会发现这些方法是有用的。 但谨慎使用!
您可以在官方文档中以及以下堆栈溢出文章中阅读:
在特定的时间删除MongoDB文档