查找并删除所有" createdDate"是一个月大

时间:2015-03-18 16:20:37

标签: mongodb mongodb-query

我正在研究MongoDB Collections。我有一组收藏品,每个收藏品都有很多文件。我必须编写一个程序来删除所有那些“createdDate”早于当前日期一个月的文件。

我被困在找到当前日期后一个月的日期,以便将其与文档的“createdDate”进行比较。

此外,我必须安排此程序,以便它可以每天自动运行。 (操作系统是Windows)。我怎样才能实现它?

1 个答案:

答案 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每天运行