Overview
En esta guía, puedes aprender cómo usar el controlador Rust para crear e interactuar con colecciones de series temporales. Las colecciones de series temporales almacenan de manera eficiente secuencias cronológicas de mediciones a lo largo de un período de tiempo. Cada documento en una colección de series de tiempo contiene la siguiente información:
Cantidad que se mide a lo largo del tiempo
Metadatos que describen la medición
Marca de tiempo para la medición
La siguiente tabla describe algunos ejemplos de situaciones en las que se podrían almacenar datos en una colección de series temporales. Cada fila describe la situación, la cantidad medida y los metadatos de cada documento:
Situación | Cantidad medida | Metadata |
|---|---|---|
Registro de ventas mensuales por industria | Ganancia en USD | Empresa, país |
Seguimiento de los cambios meteorológicos | Nivel de precipitación | Ubicación, tipo de sensor |
Registro de fluctuaciones en los precios de la vivienda | Precio de alquiler mensual | Ubicación, moneda |
Esta guía incluye las siguientes secciones:
Crear una colección de series de tiempo describe la sintaxis para crear una colección de series de tiempo y proporciona un código de ejemplo
query una colección de series de tiempo describe cómo realizar operaciones en colecciones de series de tiempo
Información adicional proporciona enlaces a recursos y documentación de la API para los tipos y métodos mencionados en esta guía
Crear una colección de series de tiempo
Importante
Versión del servidor para colecciones de series de tiempo
Para crear e interactuar con colecciones de series de tiempo, debe estar conectado a una implementación que ejecute MongoDB 5.0 o posterior.
Para crear una colección de series de tiempo, realiza las siguientes acciones:
Crear un(a)
TimeseriesOptionsinstancia que especifica las propiedades de tu colección de series de tiempo.Llama al método
create_collection()y pasa el nombre de la colección como parámetro.Encadena el método
timeseries()al métodocreate_collection(). Pase su instancia deTimeseriesOptionscomo parámetro atimeseries().
Ejemplo
Este ejemplo crea la colección de series de tiempo sept2023 en la base de datos precipitation con la siguiente configuración:
time_fieldestá configurado para"precipitation_mm"meta_fieldestá configurado para"location"granularityse establece en minutos
let db = client.database("precipitation"); let ts_opts = TimeseriesOptions::builder() .time_field("precipitation_mm".to_string()) .meta_field(Some("location".to_string())) .granularity(Some(TimeseriesGranularity::Minutes)) .build(); db.create_collection("sept2023") .timeseries(ts_opts) .await?;
Para verificar que se ha creado correctamente la colección de series de tiempo, ejecutar el método list_collections() en la base de datos e imprimir los resultados:
let mut coll_list = db.list_collections().await?; while let Some(c) = coll_list.try_next().await? { println!("{:#?}", c); }
CollectionSpecification { name: "sept2023", collection_type: Timeseries, options: CreateCollectionOptions { ... timeseries: Some( TimeseriesOptions { time_field: "precipitation_mm", meta_field: Some( "location", ), granularity: Some( Minutes, ), }, ), ... }, ... }
Realiza queries a una colección de series de tiempo
Puede utilizar la misma sintaxis y convenciones para consultar una colección de series temporales que para realizar operaciones de lectura o agregación en otras colecciones. Para obtener más información sobre estas operaciones, consulte la sección "Información adicional".
Información Adicional
Para aprender más sobre los conceptos mencionados en esta guía, consulta las siguientes entradas del manual del servidor:
Crear y ejecutar un query en una colección de series de tiempo
Establece la granularidad para los datos de series de tiempo
Para obtener más información sobre cómo crear colecciones, consulta la guía sobre Bases de datos y colecciones.
Para obtener más información sobre cómo realizar operaciones de lectura, consulta las guías de la sección Operaciones de lectura.
Documentación de la API
Para obtener más información sobre los métodos y tipos mencionados en esta guía, vea la siguiente documentación de la API: