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
/ /

Colecciones de series de tiempo

En esta guía, puede aprender a utilizar la Biblioteca PHP de MongoDB para crear e interactuar con colecciones de series temporales. Estas colecciones almacenan datos de series de tiempo, que 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 ejemplo para las cuales puede 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, debes 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, pasa un arreglo de opciones al MongoDB\Database::createCollection() método que establece la opción timeseries. Al configurar esta opción, incluye los siguientes campos:

  • timeField: Especifica el campo que almacena una marca de tiempo en cada documento de serie de tiempo.

  • metaField: Especifica el campo que almacena metadatos en cada documento de la serie de tiempo.

  • granularity: Especifica el tiempo aproximado entre marcas de tiempo consecutivas. Los posibles valores son 'seconds', 'minutes' y 'hours'.

Este ejemplo crea la colección de series de tiempo sept2023 en la base de datos precipitation con la siguiente configuración:

  • timeField está configurado para 'timestamp'

  • metaField está configurado para 'location'

  • granularity está configurado para 'minutes'

$db = $client->precipitation;
$options = [
'timeseries' => [
'timeField' => 'timestamp',
'metaField' => 'location',
'granularity' => 'minutes',
],
];
$db->createCollection('sept2023', $options);

Para verificar que hayas creado correctamente la colección de series de tiempo, llama al método MongoDB\Database::listCollections() en la base de datos e imprime los resultados:

$cursor = $db->listCollections();
foreach ($cursor as $collectionInfo) {
print_r($collectionInfo) . PHP_EOL;
}
MongoDB\Model\CollectionInfo Object
(
[name] => sept2023
[type] => timeseries
[options] => Array
(
)
[info] => Array
(
)
)
MongoDB\Model\CollectionInfo Object
(
[name] => system.buckets.sept2023
[type] => collection
[options] => Array
(
)
[info] => Array
(
)
)

Nota

MongoDB almacena los datos del sistema asociados con las colecciones de series de tiempo en el <database>.system.buckets namespace. Para más información, consulte base de datos.system.buckets en el manual de MongoDB Server.

Puedes insertar datos en una colección de series de tiempo utilizando los métodos MongoDB\Collection::insertOne() o MongoDB\Collection::insertMany() y especificando la medición, la marca de tiempo y los metadatos en cada documento insertado.

Tip

Para aprender más sobre cómo insertar documentos en una colección, consulta la Guía de Insertar documentos.

Este ejemplo inserta datos de precipitaciones de la ciudad de Nueva York en la colección de series de tiempo sept2023 creada en el ejemplo de creación de una colección de series de tiempo. Cada documento contiene los siguientes campos:

  • precipitation_mm, que almacena las mediciones de precipitaciones en milímetros

  • location, que almacena metadatos de ubicación

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

$collection = $db->sept2023;
$result = $collection->insertMany(
[
[
'precipitation_mm' => 0.5,
'location' => 'New York City',
'timestamp' => new MongoDB\BSON\UTCDateTime(1694829060000),
],
[
'precipitation_mm' => 2.8,
'location' => 'New York City',
'timestamp' => new MongoDB\BSON\UTCDateTime(1695594780000),
],
],
);

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 encontrar más información sobre estas operaciones, consulta la sección Información adicional.

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

Para obtener más información sobre cómo realizar operaciones de query, consulta Query Operations.

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

Para obtener más información sobre los métodos mencionados en esta guía, consulta la siguiente documentación de la API:

Volver

BSON

En esta página