Overview
En esta guía, aprenderá a usar el controlador de Rust para crear e interactuar con colecciones de series temporales. Las colecciones de series temporales almacenan eficientemente secuencias cronológicas de mediciones a lo largo de un período. Cada documento de una colección de series temporales 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 | Ingresos 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
Consultar 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 API para los tipos y métodos mencionados en esta guía.
Crear una colección de series de tiempo
Importante
Versión de servidor para colecciones de series temporales
Para crear e interactuar con colecciones de series temporales, debe estar conectado a una implementación que ejecute MongoDB 5.0 o posterior.
Para crear una colección de series temporales, realice las siguientes acciones:
Crear una
TimeseriesOptionsinstancia que especifica las propiedades de su colección de series de tiempo.Llame al método
create_collection()y pase el nombre de la colección como parámetro.Encadena el método
timeseries()al métodocreate_collection(). Pasa tu instanciaTimeseriesOptionscomo parámetro atimeseries().
Ejemplo
Este ejemplo crea la colección de series temporales 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 ha creado correctamente la colección de series de tiempo, ejecute el método list_collections() en la base de datos e imprima 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, consulte la guía en Bases de datos y colecciones.
Para obtener más información sobre cómo realizar operaciones de lectura, consulte las guías en 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, consulte la siguiente documentación de API: