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 | Ingresos | Empresa |
Tasas de infección | Cantidad de personas infectadas | Ubicación |
Crear una colección de series de tiempo
Importante
Las colecciones de series de tiempo requieren MongoDB 5.0 o posterior.
Para crear una colección de series de tiempo, pase los siguientes parámetros a la
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 ha creado la colección, envíe 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 consultar una colección de series de tiempo, utilice las mismas convenciones que utilizaría para recuperar y agregar datos.
Información Adicional
Para obtener más información 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: