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>
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!