Overview
En esta guía, puede aprender sobre las colecciones de series de tiempo en MongoDB y cómo interactuar con ellas en MongoDB Go Driver.
Las colecciones de series temporales almacenan eficientemente secuencias de mediciones a lo largo de un período. La colección consta de datos de series temporales con la siguiente información:
Datos recopilados a lo largo del tiempo
Metadatos que describen la medición
Fecha de la medición
Ejemplo | Medición | Metadata |
|---|---|---|
Datos de ventas | ganancia | Empresa |
Tasas de infección | Cantidad de personas infectadas | Ubicación |
Crear una colección de series de tiempo
Importante
Las colecciones de series temporales requieren MongoDB 5.0 o posterior.
Para crear una colección de series de tiempo, utiliza los siguientes parámetros
CreateCollection() :
El nombre de la nueva colección a crear
El objeto
TimeSeriesOptionsque especifica al menos el campo de tiempo
Ejemplo
El siguiente ejemplo crea la colección de series de tiempo march2022 en la base de datos db con temperature como campo de tiempo:
db := client.Database("db") // Creates a time series collection that stores "temperature" values over time tso := options.TimeSeries().SetTimeField("temperature") opts := options.CreateCollection().SetTimeSeriesOptions(tso) db.CreateCollection(context.TODO(), "march2022", opts)
Para comprobar si se creó la colección, envía el comando "listCollections" al método RunCommand():
package main import ( "context" "encoding/json" "fmt" "log" "os" "go.mongodb.org/mongo-driver/v2/bson" "go.mongodb.org/mongo-driver/v2/mongo" "go.mongodb.org/mongo-driver/v2/mongo/options" ) func main() { var uri string if uri = os.Getenv("MONGODB_URI"); uri == "" { log.Fatal("You must set your 'MONGODB_URI' environment variable. See\n\t https://www.mongodb.com/es/docs/drivers/go/current/usage-examples/") } client, err := mongo.Connect(options.Client().ApplyURI(uri)) if err != nil { panic(err) } defer client.Disconnect(context.TODO()) db := client.Database("myDB") // Creates a command to list collections command := bson.D{{"listCollections", 1}} var result bson.M // Runs the command on the database commandErr := db.RunCommand(context.TODO(), command).Decode(&result) if commandErr != nil { panic(commandErr) } // Prints the command results output, outputErr := json.MarshalIndent(result, "", " ") if outputErr != nil { panic(outputErr) } fmt.Printf("%s\n", output) }
{ ... "cursor": { "firstBatch": [ { "info": { "readOnly": false }, "name": "march2022", "options": { "timeseries": { ... } }, "type": "timeseries" }, ... }
Realiza queries a una colección de series de tiempo
Para query una colección de series de tiempo, utiliza las mismas convenciones que utilizarías para recuperar y agregar datos.
Información Adicional
Para aprender más sobre las operaciones mencionadas, consulte las siguientes guías:
Documentación de la API
Para obtener más información sobre cualquiera de los métodos o tipos discutidos en esta guía, consultar la siguiente documentación de la API: