将文章归档后在某个ttl指定nodejs

所以我有两个集合。

  1. active_posts集合

  2. 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文档