Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Colecciones de series de tiempo

En esta guía, puedes aprender a usar la integración de Laravel 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, cree una clase de migración y añade una función up() para especificar la configuración de la colección. En la función up(), pasa el nombre de la nueva colección y la opción timeseries al método Schema::create().

Tip

Para obtener más información sobre cómo crear una clase de migración, consulta Realizar Migraciones en Laravel en la guía del Generador de esquemas.

Cuando configures la opción timeseries, 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'.

Esta clase de migración de ejemplo crea la colección de series de tiempo precipitation con la siguiente configuración:

  • timeField está configurado para 'timestamp'

  • metaField está configurado para 'location'

  • granularity está configurado para 'minutes'

<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
protected $connection = 'mongodb';
/**
* Run the migrations.
*/
public function up(): void
{
$options = [
'timeseries' => [
'timeField' => 'timestamp',
'metaField' => 'location',
'granularity' => 'minutes',
],
];
Schema::create('precipitation', null, $options);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::drop('precipitation');
}
};

Para verificar que creó la colección de series de tiempo con éxito, llame al método Schema::hasCollection() y pase el nombre de la colección como parámetro:

$result = Schema::hasCollection('precipitation');
echo $result;

Si la colección existe, el método hasCollection() devuelve un valor de true.

Puedes insertar datos en una colección de series de tiempo pasando tus documentos al método insert() 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 Insertar documentos en la guía de operaciones de escritura.

Este ejemplo inserta datos de precipitaciones de la ciudad de Nueva York en la colección de series de tiempo precipitation 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

$data = [
[
'precipitation_mm' => 0.5,
'location' => 'New York City',
'timestamp' => new UTCDateTime(Carbon::create(2023, 9, 12, 0, 0, 0, 'CET')),
],
[
'precipitation_mm' => 2.8,
'location' => 'New York City',
'timestamp' => new UTCDateTime(Carbon::create(2023, 9, 17, 0, 0, 0, 'CET')),
],
];
$result = DB::table('precipitation')
->insert($data);

Nota

El ejemplo anterior utiliza el constructor de consultas de Laravel para insertar documentos en la colección de series de tiempo. Alternativamente, puedes crear un modelo Eloquent que represente la colección y realizar operaciones de inserción en tu modelo. Para más información, consulta la guía de Clase de Modelo Eloquent.

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 conocer más sobre los conceptos mencionados en esta guía, consulta las siguientes entradas del manual de servidor de MongoDB:

Para obtener más información sobre cómo consultar datos, consulta la guía Constructor de consultas.

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