gpt4 book ai didi

node.js - 一段时间后自动更新 Mongoose 文档(node.js)对象的属性

转载 作者:IT老高 更新时间:2023-10-28 12:30:48 25 4
gpt4 key购买 nike

我目前正在开发一个以 MongoDB 作为数据库系统的 node.js 服务器。

我知道,mongodb 在一定时间后删除文档有 TTL(生存时间)和“过期”。我的问题是,我不想删除文档,我只想将它们设置为“非事件”。

那么,在文档的特定时间之后设置属性是否有类似的东西,例如从 true 到 false 的 bool “isActive”?

是否有任何常见的 MongoDB 或 node.js 方法来执行此操作?

谢谢!

最佳答案

MongoDB 中没有(时间延迟的)触发器可以自动触发这样的操作。

TTL 功能只是每分钟运行一个作业,检查日期(在索引中)并确定应该删除的内容。对于您的应用程序,您可以构建类似的东西。

添加索引日期字段,例如命名为:inactiveAfter

每分钟(或其他时间段,取决于您的数据库大小)运行一个作业,更新文档({$set: {status:"inactive", inactiveAfter: null}})过期。出于性能原因,请确保查询只需要触及索引。不要忘记设置 {multi: true}

可以通过多种方式安排您的工作,但一个简单的 cronjob 就可以完成这项工作。除了你的主 Node 服务器,我会把这个任务放在一个单独的项目中。

关于node.js - 一段时间后自动更新 Mongoose 文档(node.js)对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27128360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com