Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 查找并删除所有其;createdDate“;她大一个月_Mongodb_Mongodb Query - Fatal编程技术网

Mongodb 查找并删除所有其;createdDate“;她大一个月

Mongodb 查找并删除所有其;createdDate“;她大一个月,mongodb,mongodb-query,Mongodb,Mongodb Query,我正在处理MongoDB集合。我有一套收藏,每个收藏都有很多文档。我必须编写一个过程来删除那些“createdDate”从当前日期起超过一个月的所有文档 我一直在寻找比当前日期晚一个月的日期,以便将其与文档的“createdDate”进行比较 我还要安排这个程序,这样它每天都能自动运行。(操作系统是windows)。如何实现它?您可以尝试获取以当前日期的月份为单位的日期对象(请记住,JavaScript月份日期是基于0的索引),并添加1以获取从现在开始的一个月的日期,然后您可以在查询中使用cre

我正在处理
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 } })
更新

关于你的第二个问题

我必须安排这个过程,这样它才能自动运行 每天。(操作系统是windows)。我怎样才能做到呢


MongoDB目前不支持本机作业调度。大多数操作系统都有运行定时程序的方法,如cron或Windows任务调度器等,因此这是一个相当广泛的问题,我只能建议您使用上述内容编写一个自定义shell脚本,您可以使用Windows任务调度器计划每天运行。

在我回答此问题之前,请快速提问:是否确实要“删除”它?“停用”该数据可能是一个更好的选择,这样您就可以保留该数据用于分析目的,而不会在应用程序中显示。那么您使用的是什么驱动程序或库?某种程度上决定了我如何写答案因为我是MongoDb的新手,我不知道这些文档也可以被停用。我当然想取消它。我使用的是java驱动程序。停用并不是mongodb固有的功能,但您可以在文档模式中有一个名为“active”的bool。如果要停用此选项,请将其设置为false,并在查询中包含active:true。请确保为此字段编制索引。mongodb将使用Thank将其与其他索引混合,这对我很有用。请帮我解决第二个问题。我必须安排这个过程,这样它每天都能自动运行。(操作系统是windows)。我怎样才能做到呢?