按年龄查询mongodb文件

时间:2017-12-06 00:35:43

标签: mongodb

我希望每月从我的一个馆藏中删除超过1个月的所有文件。该集合中的示例文档如下所示:

{
    _id: ObjectId("56e75f1ce851695805ead8ae"),
    createDate: ISODate("2016-03-15T01:02:20.821Z"),
    foo: "bar"
}

我希望自动安排此任务,因此它不需要人工输入 - 例如,作为一个cron作业 - 所以我希望它尽可能少的逻辑。

如何查询createDate超过1个月的文档?我曾想过尝试这样的事情:

db.col.find({createDate: {$lt: ISODate(ISODate().getTime() - 1000*3600*24*30)}});

...我用当前时间减去1个月毫秒创建一个新的ISODate,但这并不是返回任何数据。即使它确实有效,它也有点难看。我将如何完成这项工作?

2 个答案:

答案 0 :(得分:1)

您可以创建TTS索引以删除超过30天的数据。它将在30天后自动删除数据。

db.col.createIndex({“createDate”:1},{expireAfterSeconds:2592000})

答案 1 :(得分:0)

好吧,我明白了。看来我的语法有点不对......不完全确定这个正确的语法是如何工作的,说实话,但它确实做到了我需要的。

   $('.my_r_warning').on('click', function () {
                CKEDITOR.instances['js-ckeditor'].setData('Reply :');
                $('html, body').animate({
                            scrollTop: $('#form').offset().top
                                    }, 2000)
          })