我试图测试TTL索引,但是我必须等待60秒才能让mongod进行清理。有没有办法按要求实现这一目标?
答案 0 :(得分:-2)
在特定时钟时间过期文档
要在特定时钟时间到期文档,首先在保存BSON日期类型值或BSON日期类型对象数组的字段上创建TTL索引,并指定expireAfterSeconds值为0.对于每个文档集合,将索引日期字段设置为与文档到期时间对应的值。如果索引日期字段包含过去的日期,MongoDB会认为该文档已过期。
例如,以下操作在log_events集合的expireAt字段上创建索引,并指定expireAfterSeconds值为0:
db.log_events.createIndex({“expireAt”:1},{expireAfterSeconds:0}) 对于每个文档,将expireAt的值设置为与文档到期的时间相对应。例如,以下insert()操作会添加一个文档,该文档将于2013年7月22日14:00:00到期。
db.log_events.insert( {
"expireAt": new Date('July 22, 2013 14:00:00'),
"logEvent": 2,
"logMessage": "Success!"
} )
当文档的expireAt值早于expireAfterSeconds中指定的秒数时,MongoDB将自动从log_events集合中删除文档,即在这种情况下为0秒。因此,数据将以指定的expireAt值到期。