首頁 >後端開發 >Golang >如何使用 Go 在 MongoDB 中設定自動文件過期?

如何使用 Go 在 MongoDB 中設定自動文件過期?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-29 17:24:02407瀏覽

How to Set Up Automatic Document Expiration in MongoDB with Go?

MongoDB 中的文檔在固定時間間隔後過期

在Go 中,使用mongo-go-driver,可以根據指定的時間自動使集合中的文檔過期

說明

要使文件自動過期,您需要:

  1. 使用expireAfterSeconds選項建立索引:這根據欄位(例如createdAt )設定文檔的TTL(生存時間)。
  2. 插入具有指定時間戳字段的文件:插入文件時,確保它們具有createdAt字段來確定 TTL 何時開始。

範例程式碼

在您的Go 程式碼中:

<code class="go">// Add an index to expire documents after 1 second (for testing purposes).
model := mongo.IndexModel{
    Keys:    bson.M{"createdAt": 1},
    Options: options.Index().SetExpireAfterSeconds(1),
}
ind, err := col.Indexes().CreateOne(ctx, model)</code>

有關計時的注意事項

這很重要請注意, expireAfterSeconds 選項指定文件可以刪除的持續時間。然而,實際刪除可能不會立即發生。

MongoDB 每 60 秒執行一次後台任務以刪除過期文件。因此,過期文件在 TTL 過期後可能會在集合中保留最多 60 秒。此外,如果資料庫負載過重,刪除過程可能需要更長的時間。

希望您的文件能夠被及時刪除時請記住這一點。

以上是如何使用 Go 在 MongoDB 中設定自動文件過期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn