是否可以在 MongoDB 中设置每条消息的 TTL?我想插入可以具有不同 TTL 的消息,我使用 MongoDB 检查是否必须重新发送消息
答案 0 :(得分:1)
是的,有可能,请参阅 Expire Data from Collections by Setting TTL。
首先,您必须创建一个 TTL 索引,在其中为 0
设置 expireAfterSeconds
。并且您必须设置 expireAt
时间戳,通过将希望的 TTL 添加到当前时间来计算。
例如创建索引:
db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )
然后如果你想要一个文档的 3 秒 TTL,请插入一个属性:
"expireAt": time.Now().Add(3 * time.Second)
要拥有 1 小时 TTL 的文档:
"expireAt": time.Now().Add(time.Hour)