Maison >développement back-end >Golang >Comment garantir l'expiration des documents dans MongoDB à l'aide de Go-Mongo-Driver ?

Comment garantir l'expiration des documents dans MongoDB à l'aide de Go-Mongo-Driver ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-29 22:15:041107parcourir

How to Ensure Document Expiration in MongoDB Using Go-Mongo-Driver?

Documents expirant après une période spécifiée dans Golang à l'aide de Mongo

Dans Golang, mongo-go-driver offre la possibilité d'expirer automatiquement les documents après un nombre de secondes spécifié. Cependant, certains utilisateurs peuvent rencontrer des problèmes avec cette fonctionnalité qui ne fonctionne pas comme prévu.

Pour résoudre ce problème, il est crucial de respecter la procédure correcte de création d'un index expireAfterSeconds. Cela implique la mise en place d'un index TTL (Time-to-Live) qui détermine la période de temps après laquelle un document doit être supprimé.

Exemple de code pour les documents expirant

<code class="golang">package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "github.com/Pallinder/go-randomdata"
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/bson/primitive"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
)

func main() {
    ctx := context.TODO()

    client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))
    if err != nil {
        log.Fatal(err)
    }
    err = client.Connect(ctx)
    if err != nil {
        log.Fatal(err)
    }

    db := client.Database("LADB")
    col := db.Collection("LACOLL")

    // Add an index to the collection with an expireAfterSeconds option
    model := mongo.IndexModel{
        Keys:    bson.M{"createdAt": 1},
        Options: options.Index().SetExpireAfterSeconds(1),
    }
    ind, err := col.Indexes().CreateOne(ctx, model)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(ind)

    // Insert some documents with createdAt timestamp
    for i := 0; i  <p><strong>Remarque :</strong> La tâche en arrière-plan de MongoDB pour supprimer les documents expirés s'exécute toutes les 60 secondes. Par conséquent, il peut y avoir un délai dans la suppression des documents expirés, potentiellement jusqu'à 60 secondes.</p></code>

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!

Déclaration:
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