Docs Menu
Docs Home
/ /

Colecciones de series de tiempo

En esta guía, aprenderá a usar la biblioteca PHP de MongoDB para crear e interactuar con colecciones de series temporales. Estas colecciones almacenan datos de series temporales, compuestos por los siguientes componentes:

  • Cantidad medida

  • Marca de tiempo para la medición

  • Metadatos que describen la medición

En la siguiente tabla se describen situaciones de muestra para las que se pueden 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

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, pase una matriz de opciones a MongoDB\Database::createCollection() Método que establece la opción timeseries. Al configurar esta opción, incluya los siguientes campos:

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

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

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

Este ejemplo crea la colección de series temporales 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 ha creado correctamente la colección de series de tiempo, llame al método MongoDB\Database::listCollections() en la base de datos e imprima 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 temporales en el espacio de nombres <database>.system.buckets. Para obtener más información, consulte database.system.buckets en el manual del servidor MongoDB.

Puede 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 obtener más información sobre cómo insertar documentos en una colección, consulte la Guía deinserción de documentos.

Este ejemplo inserta datos de precipitación de la ciudad de Nueva York en la sept2023 colección de series temporales creada en el ejemplo "Crear una colección de series temporales". Cada documento contiene los siguientes campos:

  • precipitation_mm, que almacena las mediciones de precipitación en milímetros

  • location, que almacena metadatos de ubicación

  • timestamp, que almacena el tiempo de recolección de mediciones

$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),
],
],
);

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".

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 consulta, consulte Operaciones de consulta.

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, consulte la siguiente documentación de API:

Volver

BSON

En esta página