用mongoose更新“过期”

我对mongodb和mongoose是新手,我很难搞清楚如何做到以下几点。 我有一个架构,说“用户”,其中包括这样一个领域:

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

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

我想知道是否有方法来更新用户的expires属性。 我想要做以下事情:

  • 从我的数据库中检索用户
  • 更新expires ,这样用户不会过期
  • 保存更改

任何build议将不胜感激!

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

  1. 删除现有字段上的expires索引。
  2. 用4小时的时间创build一个名为expiresdeletionDate的字段。
  3. 如果用户不应该被删除,请将该值设置为null

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