MongoDB 每条消息 TTL

时间:2021-03-12 19:53:23

标签: mongodb go nosql ttl

是否可以在 MongoDB 中设置每条消息的 TTL?我想插入可以具有不同 TTL 的消息,我使用 MongoDB 检查是否必须重新发送消息

1 个答案:

答案 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)
相关问题