我在mongoDB中創建了一個集合,我爲其創建了字段「expireAt」的索引,這是一個日期時間並將expireAfterSeconds屬性設置爲0. 正如我想要在文檔中設置TTL級別不在收集級別。 正如我所知在redis我可以得到特定的鑰匙的其餘TTL 只是有問題可能在mongoDB?在那裏我可以得到給定文件的剩餘時間到期。如何獲取mongo的剩餘TTL文檔
我已經在谷歌搜索它,但沒有找到任何相關信息。
謝謝
我在mongoDB中創建了一個集合,我爲其創建了字段「expireAt」的索引,這是一個日期時間並將expireAfterSeconds屬性設置爲0. 正如我想要在文檔中設置TTL級別不在收集級別。 正如我所知在redis我可以得到特定的鑰匙的其餘TTL 只是有問題可能在mongoDB?在那裏我可以得到給定文件的剩餘時間到期。如何獲取mongo的剩餘TTL文檔
我已經在谷歌搜索它,但沒有找到任何相關信息。
謝謝
如果設置了TTL expireAfterSeconds
值爲0的每個文檔到期,剩餘時間將是之間的區別當前時間和文檔中的TTL日期字段(例如,expireAt
)。沒有特定的服務器函數來查詢它,但是您可以在您的應用程序中計算它,或者使用MongoDB的聚合框架。
實施例使用mongo
殼返回收到的文件有資格在接下來的TTL通待去除留(毫秒)的時間:
db.mycoll.aggregate(
{ $project: {
expireAt: 1,
ttlMillis: {
$subtract: [ "$expireAt", new Date() ]
}
}}
)
注:TTL後臺線程運行每60秒,使文件可能會持續一分鐘或更長時間超過其名義期限。
我想讓ttl留給給定的文檔。 你給出的命令只是在mongo集合的特定字段上創建了TTL。 –
我認爲這個文檔[這裏](http://hassansin.github.io/working-with-mongodb-ttl-index)可以幫助你更多。 –
您好,我希望通過文檔,但沒有功能獲取文檔的其餘ttl。 我想我將不得不取得過期的數據並按照我的要求執行操作。 –