node.js - 如何删除MongoDB集合中的TTL?

标签 node.js mongodb mongoose

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

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

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

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

最佳答案

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

不确定您的集合名称是什么,但在 shell 中它会类似于:

db.adInfos.dropIndex('created_1')

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

关于node.js - 如何删除MongoDB集合中的TTL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28356610/

相关文章:

node.js - 2服务器负载均衡 Node js应用设置中的Elasticsearch部署

node.js - 无法访问返回的 mongodb/mongoose 对象的内容

node.js - 使用 mongoose api 和 nodejs 搜索数据库?

javascript - 数组没有预期值 - Nodejs

mongodb - 错误 : mongodb. jdbc.MongoDriver 未加载。你确定你已经包含了正确的 jdbc 驱动程序

python - 使用 Python 基于来自用户的 JSON 构建 mongoDB 查询

javascript - 在 Mongoose 中推送 ObjectId

javascript - 基于先前调用的响应的异步调用,避免回调 hell

node.js - typescript :req.user 可能是 'undefined' - express 和 passport js

MongoDB:输出 'id' 而不是 '_id'