javascript - 在特定日期删除文档 - mongoose
问题描述
基本上我正在做一个需要在特定日期删除一些文档的项目。这是关于会员资格的。当会员资格到期时,我希望删除该文档。但是,我还想看看以后删除了哪些文档。(保留该文档的对象 ID)。下面我membership.model.js
在我的代码中展示了。
membershipId: Number,
startTime: Date, // Starting date and time of the membership
endTime: Date, //Expiring date of the membership
fees: Number,
_active: Boolean, //membership active or not
memberType: String
所以基本上我想删除这个文件endtime
。我试过这个
schema.index({ expire_at: endTime }, { expireAfterSeconds: 0 });
但是在很晚的时候,我无法使用上述方式检查删除了哪些文档。如果我可以将此_active
变量放在该文档的false
后面会更好endTime
(但不会从数据库中永久删除该文档)。有没有办法做到这一点?
解决方案
TTL 是为过期而不是存档而设计的,它按照它所说的诚实行事。
您可以制定一个逻辑并将其用作解决方案:这里。
就像文档说的那样,
不要将应用程序逻辑存储在数据库中。在 MongoDB 中运行 JavaScript 存在性能限制。当应用程序代码与应用程序本身共享版本控制时,它通常也是最有效的。
我建议只需编写一个 CRON 作业并使用$merge不时将内容移动到另一个集合。
推荐阅读
- java - Maven eclipse 错误:“无法读取所需库的存档或不是有效的 ZIP 文件”
- java - “如何修复'selenium.JavascriptException:javascript错误:无法读取selenium jenkins中未定义的属性'left'错误
- python-3.x - 使用 Python 客户端库为 gcp 计算 API 传递什么以及如何传递凭证
- excel - 如何在使用可变工作表名导入 ExcelSheet 时跳过行?
- javascript - 数组按时间排序 hh:mm:ss
- javascript - true+false===1 如何评估为 true
- python - DataFrame 中相同的字典都同时更改
- html - 我怎样才能使这个导航栏更薄并且背景颜色透明
- validation - 如何使用 ValidatedNec 累积错误?
- python - 如何在不复制的情况下在多个进程中使用大型数据集?