更新"到期"与猫鼬

时间:2014-05-30 15:00:20

标签: node.js mongodb mongoose

我是mongodb和mongoose的新手,我很难搞清楚如何做以下事情。 我有一个Schema,说“User”,其中包含一个这样的字段:

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

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

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

  • 从我的数据库中检索用户
  • 更新expires,以便用户不再过期
  • 保存更改

任何建议都将受到高度赞赏!

1 个答案:

答案 0 :(得分:3)

唯一的方法是将值设置为null。您丢失了createdAt值,这可能是您不想要的,因此我个人所做的就是:

  1. 删除现有字段上的expires索引。
  2. 使用4小时的时间创建名为expiresdeletionDate的字段。
  3. 如果不应删除用户,请将值设置为null
  4. 我个人更喜欢将ttl设置为0并将日期设置为{default: function() { return new Date(Date.now()+1000*60*number_of_hours); }。这样可以更容易地随意延长文档的生存时间,并且在数据库中更容易阅读。