You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cosmos DB MongoDB API是否支持expireAfterSeconds=-1实现无限TTL?

Azure Cosmos DB MongoDB API 单文档TTL的集合级索引配置方案

核心结论

在Azure Cosmos DB的MongoDB API中,无法用-1作为集合级TTL索引的expireAfterSeconds值,要实现主文档默认不自动过期的需求,需将该值设为MongoDB支持的最大正整数2147483647(约68年)。

详细说明

  • Azure Cosmos DB的MongoDB API遵循原生MongoDB的TTL索引规则,expireAfterSeconds仅接受非负整数:
    • 设为0时,文档会在ttl字段指定的时间点立即过期;
    • 设为正整数时,会在ttl字段时间基础上追加对应秒数后过期;
    • -1是Cosmos DB NoSQL API独有的“无限过期”配置,并不适用于MongoDB API,官方文档未提及该值也印证了这一点。
  • 当集合级expireAfterSeconds设为2147483647时:
    • 无ttl字段的实体主文档,因TTL索引需依赖ttl字段触发过期逻辑,会一直保留不会被自动删除;
    • 带有ttl字段的附属关联文档,其单文档的ttl值会覆盖集合级配置,按预设策略到期自动删除。

索引创建示例

db.your_collection.createIndex( { "ttl": 1 }, { expireAfterSeconds: 2147483647 } )

内容的提问来源于stack exchange,提问作者Martin Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:17:20