我目前正在使用MongoDB作为数据库系统开发一个node.js服务器。
我知道,mongodb具有TTL(生存时间)和“到期时间”,以便在一定时间后删除文档。我的问题是,我不想删除文档,我只想将它们设置为“非活动”。
那么,在文档的特定时间之后是否有类似设置属性的方法,例如从true到false的布尔值“ isActive”?
是否有任何常用的MongoDB或node.js方法来做到这一点?
谢谢!
MongoDB 中没有(时间延迟的)触发器来自动触发这样的操作。
TTL 功能只是每分钟运行一个作业来检查日期(在索引中)并确定应删除的内容。对于您的应用程序,您可以构建类似的东西。
添加索引日期字段,名称例如:inactiveAfter。
每分钟(或其他时间段,取决于您的数据库大小)运行一个作业来更新{$set: {status:"inactive", inactiveAfter: null}}将过期的文档 ( )。出于性能原因,请确保查询只需要触及索引。别忘了设置{multi: true}.
可以通过多种方式来安排您的工作,但一个简单的 cronjob 就可以完成这项工作。我会将此任务放在一个单独的项目中,除了主节点服务器之外。
| 归档时间: |
|
| 查看次数: |
1635 次 |
| 最近记录: |