首页 > 解决方案 > MongoDB 每条消息 TTL

问题描述

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

标签: mongodbgonosqlttl

解决方案


是的,有可能,请参阅通过设置 TTL 使集合中的数据过期

首先,您必须在您设置0的地方创建一个 TTL 索引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)

推荐阅读