用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
价值,你可能不想要,所以我个人做的是这样的:
- 删除现有字段上的
expires
索引。 - 用4小时的时间创build一个名为
expires
或deletionDate
的字段。 - 如果用户不应该被删除,请将该值设置为
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); }
。 这将使任意延长文档生存时间变得更加容易,并且在数据库中读取更容易。