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

Limitaciones de la colección de series de tiempo

Las siguientes funciones no son compatibles con colecciones de series temporales.

El tamaño máximo de un documento de medición es de 4 MB.

No puedes usar las etapas del pipeline de agregación $out y $merge para generar una salida o fusión hacia colecciones de series de tiempo desde otra colección.

Debido a la estructura única de datos de las colecciones de series temporales, MongoDB no puede indexarlas eficientemente para valores distintos. Evite utilizar el comando distinct o el método asistente db.collection.distinct() en colecciones de series temporales. En su lugar, use una $group agregación para agrupar documentos por valores distintos.

Por ejemplo, para query valores meta.type distintos en documentos donde meta.project = 10, en lugar de:

db.foo.distinct("meta.type", {"meta.project": 10})

Uso:

db.foo.createIndex({"meta.project":1, "meta.type":1})
db.foo.aggregate([{$match: {"meta.project": 10}},
{$group: {_id: "$meta.type"}}])

Esto funciona de la siguiente manera:

  1. Creando un índice compuesto en meta.project y meta.type y admite la agregación.

  2. La etapa $match filtra los documentos en los que meta.project = 10.

  3. La etapa $group utiliza meta.type como la clave de grupo para generar un documento por cada valor único.

El tamaño máximo de los documentos dentro de una colección de series de tiempo es 4 MB.

A partir de MongoDB 5.0.5, puede realizar algunas operaciones de eliminación y actualización.

Los comandos de borrar deben cumplir los siguientes requisitos:

  • La consulta solo puede coincidir con los valores del campo metaField.

  • El comando delete puede no limitar la cantidad de documentos a borrar. Tienes que usar un comando de borrado con justOne: false o el método deleteMany().

Los comandos de actualización deben cumplir con los siguientes requisitos:

  • La consulta solo puede coincidir con los valores del campo metaField.

  • El comando de actualización solo puede modificar el valor del campo metaField.

  • La actualización debe realizarse con un documento que contenga solo expresiones de operador de actualización.

  • El comando de actualizar puede no limitar el número de documentos que se deben actualizar. Debe usar un comando de actualizar con multi: true o el método updateMany().

  • El comando de actualizar no puede establecer inserción: true.

Para borrar automáticamente datos antiguos, configura la eliminación automática (TTL).

Para eliminar todos los documentos de una colección, utilice el método para eliminar la drop() colección.

Si una colección de series temporales contiene documentos con marcas de timeField tiempo anteriores a 1970-01-01T00:00:00.000Z o posteriores a,2038-01-19T03:14:07.000Z la función TTL "tiempo de vida" no elimina ningún documento de la colección.

Para obtener detalles sobre las eliminaciones de TTL, consulte Hacer caducar datos de colecciones configurando TTL.

Puedes añadir índices secundarios en los campos especificados como timeField y metaField. Si el valor de campo para el campo metaField es un documento, también puedes crear índices secundarios en los campos dentro de ese documento.

El metaField no admite los siguientes tipos de índices:

Los índices secundarios no admiten las siguientes propiedades de índices:

No es posible crear una colección de series de tiempo como una colección con tamaño fijo.

El tipo de una colección solo se puede establecer al crear la colección:

Para mover datos de una colección existente a una colección de series de tiempo, migrar datos a una colección de series de tiempo.

Solo puedes configurar los parámetros timeField y metaField de una colección al crear la colección. Después de su creación, estos parámetros no se pueden modificar.

Una vez que se establece el granularity, solo puede aumentarse de un nivel a la vez. De "seconds" a "minutes" o de "minutes" a "hours". No se permiten otros cambios. Si necesitas cambiar el granularity de "seconds" a "hours", primero aumenta el granularity a "minutes" y luego a "hours".

A partir de MongoDB 5.0.6, se admiten colecciones de series temporales particionadas. Al utilizar colecciones de series de tiempo particionadas, no puede modificar el granularity de una colección de series de tiempo particionada.

En versiones anteriores a MongoDB 5.0.6, no se puede fragmentar colecciones de series de tiempo.

No se pueden ejecutar comandos de administración de particionamiento en colecciones de series de tiempo particionadas.

No se puede escribir en colecciones de series temporales en transacciones.

Nota

Las lecturas desde las colecciones de series de tiempo se admiten en transacciones.

Las operaciones de lectura en colecciones de series de tiempo con nivel de consistencia de lectura "snapshot" garantizan aislamiento de snapshot solo en ausencia de operaciones concurrentes de descarte o cambio de nombre en colecciones durante la operación de lectura. Volver a crear una colección de series de tiempo en el mismo namespace con una configuración de granularidad diferente no produce un aislamiento completo de snapshot.

Volver

Time Series

En esta página