如何从MongoDB集合中删除TTL?

时间:2015-02-06 00:29:18

标签: node.js mongodb mongoose

我正在使用node.js的mongoose。我正在测试生存时间功能,并将我的文档设置为在数据库模式中的X时间后过期:

var adInfos = new mongoose.Schema({                           
  inf  : { type: Object, required: false },                    
  created: { type: Date, default: Date.now, expires:60 }
});                                                           

这似乎工作正常,但在删除expires属性后,新文档似乎仍然过期。

我也尝试过设置expires: falseexpires:0,但这也不起作用。

1 个答案:

答案 0 :(得分:3)

Mongoose并不会删除索引,因此如果更改模式中的索引属性,则在手动删除现有索引之前,它们才会生效。

不确定你的收藏品名称是什么,但在shell中它会是这样的:

db.adInfos.dropIndex('created_1')

使用db.adInfos.getIndexes()查看集合上的索引。