我是 mongodb 和 mongoose 的新手,我很难弄清楚如何执行以下操作。
我有一个架构,比如“用户”,其中包括一个这样的字段:

createdAt  : {type: Date, required: true, default: Date.now, expires: '4h'}

因此,当我创建一个新用户时,比如说 var user=new User()(假设用户 requires 是正确的模型),创建的新用户将在(大约)4 小时后被删除(如果我理解正确的话)。

我想知道是否有办法更新用户的 expires 属性。我想做以下事情:
  • 从我的数据库中检索用户
  • 更新 expires ,使用户不再过期
  • 保存更改

  • 任何建议将不胜感激!

    最佳答案

    唯一的方法是将值设置为 null 。你会失去你可能不想要的 createdAt 值,所以我个人会做的是:

  • 删除现有字段上的 expires 索引。
  • 创建一个名为 expiresdeletionDate 的字段,其中包含 4 小时的生存时间。
  • 如果不应删除用户,请将值设置为 null

  • 我个人更喜欢将 ttl 设置为 0 并将日期设置为 {default: function() { return new Date(Date.now()+1000*60*number_of_hours); } 。这将使任意延长文档的生存时间变得更容易,并且在数据库中更容易阅读。

    关于node.js - 用 Mongoose 更新 "expires",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23957624/

    10-11 15:47