Maison > développement back-end > Golang > le corps du texte

Comment puis-je faire expirer automatiquement des documents dans MongoDB à l'aide de Golang ?

Mary-Kate Olsen
Libérer: 2024-10-30 15:39:26
original
337 Les gens l'ont consulté

How can I automatically expire documents in MongoDB using Golang?

Utilisation de MongoDB avec Golang : expiration automatique des documents après une période de temps spécifiée

Lors du stockage de données dans une collection MongoDB, il peut être souhaitable de définissez un délai d'expiration pour les documents, garantissant qu'ils sont automatiquement supprimés après un intervalle prédéfini. Cette fonctionnalité améliore la gestion des données en éliminant le besoin de suppression manuelle et en évitant l'encombrement dans la base de données.

Dans Go, en utilisant le pilote mongo-go-driver, on peut définir sans effort une TTL (durée de vie) pour les documents. Voici comment procéder :

1. Créer un index avec l'option ExpireAfterSeconds :

Un index avec l'option expireAfterSeconds doit être créé sur le champ représentant l'heure d'expiration. Ceci spécifie la durée en secondes après laquelle les documents pourront être supprimés. Par exemple :

<code class="go">model := mongo.IndexModel{
    Keys:    bson.M{"createdAt": 1},
    Options: options.Index().SetExpireAfterSeconds(1),
}</code>
Copier après la connexion

2. Insérer des documents :

Une fois l'index établi, les documents peuvent être insérés avec l'horodatage crééAt souhaité. Cet horodatage sert de point de référence à partir duquel l'expiration est calculée.

3. Surveiller les expirations :

Le mongo-go-driver ne fournit pas de confirmation immédiate de la suppression du document. Cela est dû à la nature asynchrone de la tâche en arrière-plan chargée de supprimer les documents expirés. MongoDB indique que cette tâche s'exécute toutes les 60 secondes, ce qui implique que les documents expirés peuvent persister jusqu'à 60 secondes avant d'être supprimés.

Remarque : Le délai d'expiration spécifié à l'aide de expireAfterSeconds est relatif au CreateAt champ. Le document peut être supprimé une fois l'intervalle spécifié écoulé depuis sa création. La suppression réelle peut avoir lieu un peu plus tard, en fonction de la charge de travail de l'instance MongoDB.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!