【问题标题】:Mongoose. Automatically change value on a given date猫鼬。在给定日期自动更改值
【发布时间】:2015-02-18 10:10:17
【问题描述】:

所以我有一个带有 ExpressJS 和 Mongoose 的简单 web 应用程序。 我的用户架构看起来像这样:

var userSchema = new mongoose.Schema({
     dateexp: Date,
     active: { type: Boolean, default: false}
});

var User = mongoose.model('User', userSchema);

我想做的是让应用程序用“date.now”检查所有用户的“dateexp”,如果通过,将“active”的值更改为true。

问题是:我需要应用程序至少每天自动检查此值。 感谢您的帮助

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    单独使用 Mongoose 无法做到这一点。

    我的建议(就其价值而言)是:

    last_activity: { type: Date }
    

    ...每次用户登录时都会更新。这样,您的数据库不必知道用户是否“活跃”——您的应用程序可以根据@987654322 的比较来判断@ 和当前日期。

    它也很容易查询,因此如果您有批处理作业或仅适用于“活跃”用户的任何内容,您只需编写一个查询来查找所有last_activity 日期小于 30 天的用户以前。

    【讨论】:

    • 感谢您的建议。还有一个问题-例如,如果我收集了“帖子”,并且我必须进行诸如 TTL 到期之类的操作,这不会删除它,而是自动更改它-最好的方法是什么?跨度>
    • 再次——无法自动更改。您可以执行 TTL 来删除,但不能修改。我会坚持仅在文档中包含时间戳的策略,然后让应用程序决定某些内容是否“活跃”。
    猜你喜欢
    • 2020-12-14
    • 2016-06-10
    • 1970-01-01
    • 2012-02-17
    • 2020-02-10
    • 2018-07-05
    • 2013-05-15
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多