Overview
En esta guía, puede aprender a utilizar el controlador C++ para almacenar e interactuar con datos de series de tiempo.
Los datos de series de tiempo se componen de los siguientes componentes:
Cantidad medida
Marca de tiempo para la medición
Metadatos que describen la medición
La siguiente tabla describe situaciones de muestra para las que podría almacenar datos de series de tiempo:
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 |
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 Server 5.0 o posterior.
Puede crear una colección de series temporales para almacenar datos de series temporales. Para crear una colección de series temporales, realice las siguientes acciones:
Cree un documento BSON que especifique las propiedades de su colección de series de tiempo.
Llama al
create_collection()método y pasa el nombre de la colección y el documento BSON de la serie temporal como argumentos.
Ejemplo
Este ejemplo crea la colección de series temporales sept2023 en la base de datos precipitation con la siguiente configuración:
timeFieldestá configurado para"timestamp"metaFieldestá configurado para"location"granularityestá configurado para"minutes"
auto db = client["precipitation"]; auto ts_info = make_document( kvp("timeseries", make_document( kvp("timeField", "timestamp"), kvp("metaField", "location"), kvp("granularity", "minutes") ))); auto collection = db.create_collection("sept2023", ts_info.view());
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:
auto cursor = db.list_collections(); for(auto&& doc : cursor) { std::cout << bsoncxx::to_json(doc) << std::endl; }
{ "name" : "sept2023", "type" : "timeseries", "options" : { "timeseries" : { "timeField" : "timestamp", "metaField" : "location", "granularity" : "minutes", "bucketMaxSpanSeconds" : 86400 } }, "info" : ... }
Almacenar datos de series temporales
Puede insertar datos en una colección de series de tiempo utilizando los métodos insert_one() o insert_many() y especificando la medición, la marca de tiempo y los metadatos en cada documento insertado.
Tip
Para obtener más información sobre cómo insertar documentos en una colección, consulte la Guía deinserción de documentos.
Ejemplo
Este ejemplo inserta datos de precipitación de la ciudad de Nueva York en la colección de series temporales sept2023 creada en el Ejemplo de creación de una colección de series temporales. Cada documento contiene los siguientes campos:
precipitation_mm, que almacena las mediciones de precipitación en milímetroslocation, que almacena metadatos de ubicacióntimestamp, que almacena el tiempo de recolección de mediciones
auto collection = db["sept2023"]; std::vector<bsoncxx::document::value> ts_data; ts_data.push_back(make_document(kvp("precipitation_mm", 0.5), kvp("location", "New York City"), kvp("timestamp", bsoncxx::types::b_date{std::chrono::milliseconds{1694829060000}}))); ts_data.push_back(make_document(kvp("precipitation_mm", 2.8), kvp("location", "New York City"), kvp("timestamp", bsoncxx::types::b_date{std::chrono::milliseconds{1695594780000}}))); auto result = collection.insert_many(ts_data);
Consulta de datos de series temporales
Puede utilizar la misma sintaxis y convenciones para consultar los datos almacenados en 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 realizar operaciones de lectura, consulte Leer datos.
Para obtener más información sobre cómo realizar operaciones de agregación, consulte la guía Transforme sus datos con agregación.
Documentación de la API
Para obtener más información sobre los métodos mencionados en esta guía, consulte la siguiente documentación de API: