我正在研究MongoDB Collections
。我有一组收藏品,每个收藏品都有很多文件。我必须编写一个程序来删除所有那些“createdDate”早于当前日期一个月的文件。
我被困在找到当前日期后一个月的日期,以便将其与文档的“createdDate”进行比较。
此外,我必须安排此程序,以便它可以每天自动运行。 (操作系统是Windows)。我怎样才能实现它?
答案 0 :(得分:2)
您可以尝试获取一个接收当前日期月份的日期对象(请记住JavaScript月份日期是从0开始的索引)并添加1以获取一个月后的日期,然后您可以在查询中使用在$gt
字段上使用 createdDate
运算符:
var now = new Date();
d = new Date(now.getFullYear(), now.getMonth()+1, now.getDate());
db.collection.remove({ createdDate: { $gt: d } })
<强>更新强>
关于第二个问题,
我必须安排此程序,以便它可以自动运行 每天。 (操作系统是Windows)。我怎样才能实现它?
MongoDB目前不支持本机作业调度。大多数操作系统都有办法运行cron或Windows Task Scheduler等预定程序,因此这是一个非常广泛的问题,我只能建议您编写一个自定义shell脚本,您可以安排使用Windows Task Scheduler每天运行