Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Datos de Time Series

En esta guía, puedes aprender cómo usar el driver 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ías almacenar datos de series de tiempo:

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

Importante

Versión del servidor para colecciones de series de tiempo

Para crear e interactuar con colecciones de series temporales, debe estar conectado a una implementación que ejecute MongoDB Server 5.0 o posterior.

Se puede crear una colección de series de tiempo para almacenar datos de series de tiempo. Para crear una colección de series de tiempo, pase los siguientes parámetros a la mongoc_database_create_collection() función:

  • La base de datos en la que se ha de crear la colección

  • El nombre de la nueva colección a crear

  • Un objeto timeseries que especifica la opción timeField

El siguiente ejemplo crea una colección de series de tiempo llamada october2024 en la base de datos fall_weather con la opción timeField configurada en los campos "timestamp":

// Initialize the MongoDB C Driver
mongoc_init();
// Create a new client instance
mongoc_client_t *client = mongoc_client_new("<connection string>");
// Get a handle on the database
mongoc_database_t *database = mongoc_client_get_database(client, "fall_weather");
// Create options for the time series collection
bson_t *opts = BCON_NEW(
"timeseries", "{",
"timeField", BCON_UTF8("timestamp"),
"}");
// Create the time series collection
bson_error_t error;
mongoc_collection_t *collection = mongoc_database_create_collection(database, "october2024", opts, &error);
if (!collection) {
fprintf(stderr, "Error creating collection: %s\n", error.message);
}
bson_destroy(opts);

Para verificar que se haya creado correctamente la colección de series de tiempo, ejecutar la función mongoc_database_find_collections_with_opts() en la base de datos fall_weather e imprime los resultados:

// List collections in the database
mongoc_cursor_t *cursor = mongoc_database_find_collections_with_opts(database, NULL);
const bson_t *doc;
while (mongoc_cursor_next(cursor, &doc))
{
char *str = bson_as_canonical_extended_json(doc, NULL);
printf("%s\n", str);
bson_free(str);
}
// Check for cursor errors
if (mongoc_cursor_error(cursor, &error))
{
fprintf(stderr, "Cursor error: %s\n", error.message);
}
mongoc_cursor_destroy(cursor);
{ "name" : "october2024", "type" : "timeseries", "options" : { "timeseries" : { "timeField" : "timestamp", "granularity" : "seconds", "bucketMaxSpanSeconds" : { "$numberInt" : "3600" } } }, "info" : { "readOnly" : false } }
...

Puedes insertar datos en una colección de series de tiempo mediante el uso de las funciones mongoc_collection_insert_one() o mongoc_collection_insert_many() y especificar la medición, la marca temporal y los metadatos en cada documento insertado.

Para obtener más información sobre cómo insertar documentos en una colección, consulte la Guía deinserción de documentos.

El siguiente ejemplo inserta datos de temperaturas de la Ciudad de Nueva York en la colección de series de tiempo october2024 creada en la página Crear un ejemplo de colección de series de tiempo. Cada documento contiene los siguientes campos:

  • temperatureque almacena las mediciones de temperatura en grados Fahrenheit

  • location, que almacena metadatos de ubicación

  • timestampque almacena la hora de la colección de la medición

const bson_t *insert_doc = BCON_NEW(
"temperature", BCON_DOUBLE(70.0),
"location", "{", "city", BCON_UTF8("New York"), "}",
"timestamp", BCON_DATE_TIME(1633046400000));
if (!mongoc_collection_insert_one(collection, insert_doc, NULL, NULL, &error)) {
fprintf(stderr, "Error inserting document: %s\n", error.message);
}

Puedes utilizar la misma sintaxis y convenciones para consultar datos almacenados en una colección de series temporales que utilizas al realizar operaciones de lectura o agregación en otras colecciones. Para aprender más sobre estas operaciones, consulta la sección Información adicional.

Para conocer más sobre los conceptos mencionados en esta guía, consulta las siguientes entradas del manual de servidor de MongoDB:

Para aprender más sobre cómo realizar operaciones de lectura, lee Leer datos.

Para obtener más información sobre cómo realizar operaciones de agregación, consulta la guía de Agregación.

Para obtener más información sobre las funciones mencionadas en esta guía, consulta la siguiente documentación de la API:

Volver

JSON extendido

En esta página