mongodb - 查找并删除所有 "createdDate"早一个月的文档

标签 mongodb mongodb-query

我正在处理 MongoDB 集合。我有一组集合,每个集合都有很多文档。我必须编写一个程序来删除所有“createdDate”从当前日期起超过一个月的文档。

我一直在寻找比当前日期早一个月的日期,以便将其与文档的“createdDate”进行比较。

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

最佳答案

您可以尝试获取一个包含当前日期月份的日期对象(请记住 JavaScript 月份日期是基于 0 的索引)并加 1 以获得从现在开始一个月的日期,然后您可以在查询中使用它在 createdDate 字段上使用 $gt 运算符:

var now = new Date();
d = new Date(now.getFullYear(), now.getMonth()+1, now.getDate());
db.collection.remove({ createdDate: { $gt: d } })

更新

对于你的第二个问题,

i have to schedule this procedure, so that it can run automatically everyday. (OS is windows). How can i achieve it?

MongoDB 目前不支持原生作业调度。大多数操作系统都有办法运行计划程序,如 cron 或 Windows 任务计划程序等,因为这是一个相当广泛的问题,我只能建议你编写一个自定义 shell 脚本,你可以使用 Windows 任务计划程序安排每天运行.

关于mongodb - 查找并删除所有 "createdDate"早一个月的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29127295/

相关文章:

Mongodb,使用 $lookup 进行聚合查询

php - elemMatch 查询在 php 中不起作用

arrays - 使用 mgo.v2 将新对象插入到 mongodb 文档中的数组属性中

java - MongoException.DuplicateKey 无法解析为 Eclipse IDE 中的类型

python - 遍历 PyMongo 游标抛出 InvalidBSON : year is out of range

python - pymongo 按日期时间分组

python - Mongoengine 查询将一个字段与另一个字段进行比较

java - MongoDB 由 : java. sql.SQLException 引起:第 1 行的列 'scenario_order' 的数据太长

javascript - 在 getStaticProps 函数中序列化 Next.js 时出错?

javascript - 删除所有以名称 "XX"开头的字段