是否可以在MongoDB中設(shè)置每條消息的TTL?我想插入可以具有不同TTL的消息,我使用MongoDB檢查我是否必須重新發(fā)送消息
1 回答

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
是的,這是可能的,請(qǐng)參閱通過設(shè)置 TTL 使集合中的數(shù)據(jù)過期。
首先,您必須創(chuàng)建一個(gè) TTL 索引,在其中設(shè)置 。您必須設(shè)置時(shí)間戳,通過將期望的TTL添加到當(dāng)前時(shí)間來計(jì)算。0
expireAfterSeconds
expireAt
例如,創(chuàng)建一個(gè)索引:
db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )
然后,如果您想要一個(gè)文檔的3秒TTL,請(qǐng)將其與屬性一起插入:
"expireAt": time.Now().Add(3 * time.Second)
要獲得 TTL 為 1 小時(shí)的文檔::
"expireAt": time.Now().Add(time.Hour)
- 1 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報(bào)
0/150
提交
取消