MongoDB 每条消息 TTL

MongoDB per message TTL

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

是的,有可能,参见 Expire Data from Collections by Setting TTL

首先,您必须创建一个 TTL 索引,在其中为 expireAfterSeconds 设置 0。并且您必须设置 expireAt 时间戳,通过将希望的 TTL 添加到当前时间来计算。

例如创建索引:

db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )

然后如果您想要文档的 TTL 为 3 秒,请将其插入 属性:

"expireAt": time.Now().Add(3 * time.Second)

要有 1 小时 TTL 的文档:

"expireAt": time.Now().Add(time.Hour)