【问题标题】:How to remove TTL form MongoDB collection?如何从 MongoDB 集合中删除 TTL?
【发布时间】:2015-02-06 09:08:20
【问题描述】:

我在 node.js 中使用猫鼬。我正在测试生存时间功能并将我的文档设置为在 db 架构中的 X 时间后过期:

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

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

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

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    Mongoose 不会删除索引,因此如果您更改架构中的索引属性,它们将在您手动删除现有索引之后才会生效。

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

    db.adInfos.dropIndex('created_1')
    

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

    【讨论】:

    • 谢谢,这似乎已经解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2016-02-13
    • 2015-09-06
    • 2018-11-21
    • 2017-02-21
    • 2017-04-15
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多