【问题标题】:How to remove a record via expiry using a specific date?如何使用特定日期通过到期删除记录?
【发布时间】:2019-12-31 03:38:34
【问题描述】:

mongoose 中,我可以通过这种方式设置定义列的文档的过期时间:

expire_at: {
    type: Date,
    default: Date.now,
    expires: 7200
}

上面的代码将在两小时内删除记录。 如何将expire_at 设置为特定日期?

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    你可以像这样设置 expires 属性可读的字符串值:

    1 分钟:

     expires: "1m"
    

    1 小时:

     expires: "1h"
    

    1天:

     expires: "1d"
    

    但是如果你想设置一个具体的日期,你可以设置 expires 属性为 0,并为具有 TTL 索引的字段设置一个日期值,如 mongodb docs 中所述。

    【讨论】:

    • 是的,我可以试试,但是如何传递 expires 参数呢?我的意思是,当我创建对象时,ec:let c = CarModel({expire_at: ???}) 我需要作为值传递什么?谢谢
    • @sfarzoso 嗯,它不是字段而是属性,所以我想不可能从外部设置值。
    • @sfarzoso 我只是这么猜测,我不确定。顺便说一句,还有另一个选项是这样的:默认值:() => new Date(+new Date() + 3 * 60 * 1000) //3 minutes
    • @sfarzoso 也许这个answer 也有一点帮助。
    • @sfarzoso 看看我发现了什么,看来这是可能的。 stackoverflow.com/questions/24275117/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多