TTL索引(新建、变更、修改)

新建索引

##要在事件日志集合的lastModifiedDate字段上创建TTL索引,TTL值为3600秒;
db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )

将非TTL单字段索引转换为TTL索引(MongoDB 5.1以上版本可用)

##集合tickets的{“lastModifiedDate”:1}的非TTL单字段索引转换为TTL索引
db.runCommand({
  "collMod": "tickets",    --集合名
  "index": {
    "keyPattern": { "lastModifiedDate": 1 },   --字段名
    "expireAfterSeconds": 100        --过期时间
  }
})

修改ttl索引过期时间

##集合tickets的ttl索引字段lastModifiedDate过期时间修改为100秒
db.runCommand({
  "collMod": "tickets",
  "index": {
    "keyPattern": { "lastModifiedDate": 1 },
    "expireAfterSeconds": 100
  }
})

限制

  1. TTL索引是单字段索引。复合索引不支持TTL,并且忽略该 expireAfterSeconds选项。
  2. _id字段不支持TTL索引。
  3. 您无法在上限集合上创建TTL索引,因为MongoDB无法从上限集合中删除文档。
  4. 您不能用于createIndex()更改expireAfterSeconds现有索引的值。而是将 collModdatabase命令与indexcollection标志一起使用 。否则,要更改现有索引的选项的值,必须首先删除索引并重新创建。
  5. 如果某个字段已经存在非TTL单字段索引,则无法在同一字段上创建TTL索引,因为您无法创建具有相同键规范且仅选项不同的索引。要将非TTL单字段索引更改为TTL索引,必须首先删除该索引,然后使用该expireAfterSeconds选项重新创建 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值