2014-10-17 101 views
1

我指的是這個Time to live in mongodb, mongoose dont work. Documents doesnt get deleted問我的問題: 是否可以動態設置MongoDB的TTL時間? 所以我們假設你有令牌收集,並且你想用它來達到不同的目的。在這種情況下,每次創建令牌時,都應該爲每個令牌設置特定的TTL。 如果這是可能的,你能否提供一些代碼片段?Mongodb,貓鼬 - 動態設置TTL時間

+2

是的。請參見[在特定時鐘時間過期文檔](http://docs.mongodb.org/manual/tutorial/expire-data/#expire-documents-at-a-certain-clock-time)。您必須將TTL字段值設置爲令牌過期的時間。嚴格來說,它沒有設置動態TTL,但其行爲方式完全相同。 – wdberkeley 2014-10-20 15:25:11

回答

1
If you define a TTL index on a collection, then periodically MongoDB will remove() old documents from the collection. 

db.events.ensureIndex('time', expireAfterSeconds=3600) 

它使用索引系統來處理TTL。它的固定,沒有辦法爲每個文件動態地定義它。在你的場景中,我建議你使用Messaging System,比如RabbitMQ以及MongoDB https://www.rabbitmq.com/ttl.html