Docs Menu
Docs Home
/ /

Limitaciones de la recopilación de series temporales

Las colecciones de series de tiempo generalmente se comportan como colecciones regulares con varias limitaciones.

MongoDB no admite las siguientes funcionalidades con colecciones de series de tiempo:

Nota

No se pueden utilizar colecciones de series temporales como fuente para el procesamiento de flujos de Atlas. Estas colecciones no admiten flujos de cambios.

No se puede usar la $merge etapa de agregación para agregar datos de otra colección a una colección de series temporales. Se puede $out usar la etapa de agregación para escribir documentos en una colección de series temporales.

Puede utilizar para mover datos de una colección de series de tiempo a otra $merge colección.

Las colecciones de series temporales solo admiten la $geoNear etapa de agregación para ordenar datos geoespaciales de 2 consultas en índices dsphere. No se $near pueden usar $nearSphere los operadores y en colecciones de series temporales.

No se puede utilizar el query campo para $geoNear en una colección de series de tiempo.

Debe especificar el campo key para $geoNear en una colección de series de tiempo.

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

Si su colección de series de tiempo contiene documentos con timeField marcas de tiempo antes de 1970-01-01T00:00:00.000Z o después de 2038-01-19T03:14:07.000Z, cree un índice en timeField para optimizar las consultas.

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

  • Solo puedes hacer coincidir el valor del campo metaField.

  • Solo puedes modificar el valor del campo metaField.

  • El documento de actualización solo puede contener expresiones de operador de actualización.

  • El comando de actualización no debe limitar el número de documentos que se actualizarán. Configure multi: true o utilice el updateMany() método.

  • El comando de actualización no debe establecer inserción: true.

Para eliminar automáticamente los datos antiguos, configure la eliminación automática (TTL).

MongoDB no crea un índice en el campo _id al crear una colección de series temporales. Esto difiere de las colecciones normales, que tienen un índice en el campo _id de forma predeterminada. Los comandos que especifican una sugerencia en el campo _id en colecciones de series temporales devuelven un error a menos que se cree manualmente un índice en el campo _id.

A partir de MongoDB 8.3, crear un índice con el nombre "_id_" o especificar una pista de "_id_" en colecciones de series de tiempo devuelve un error.

MongoDB admite parcialmente los siguientes índices en colecciones de series temporales:

MongoDB no admite los siguientes tipos de índices en colecciones de series temporales:

Si existen índices secundarios en colecciones de series temporales y necesita degradar la versión de compatibilidad de características (FCV), primero debe eliminar los índices secundarios incompatibles con la FCV degradada. Para obtener más información,setFeatureCompatibilityVersion consulte.

No es posible crear una colección de series temporales como una colección limitada.

Solo puedes establecer el tipo de colección cuando creas una colección:

  • No es posible convertir una colección existente en una colección de series temporales.

  • No es posible convertir una colección de series temporales en un tipo de colección diferente.

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

Solo se pueden configurar los parámetros timeField y metaField de una colección al crearla. No se pueden modificar posteriormente.

Para cualquier configuración de parámetros de granularidad, el tamaño máximo de un bucket es de 1000 mediciones o 125KB de datos, lo que sea menor. MongoDB también puede imponer un tamaño máximo menor para datos de alta cardinalidad con muchos valores únicos, de modo que el conjunto de trabajo de buckets quepa en la caché de WiredTiger.

Una vez que se configura el valor de una colección granularity o los parámetros de agrupación personalizados bucketMaxSpanSeconds y,bucketRoundingSeconds se puede aumentar el intervalo de tiempo que abarca un depósito, pero no disminuirlo. Use el comando para modificar los collMod parámetros.

Para obtener más información sobre la modificación de los intervalos de serie de tiempo, consulta Cambio de la granularidad de las series de tiempo.

Nota

bucketMaxSpanSeconds y bucketRoundingSeconds deben ser iguales. Si modifica un parámetro, también debe establecer el otro con el mismo valor.

Las colecciones de series temporales están sujetas a varias limitaciones de fragmentación.

No es posible ejecutar comandos de administración de fragmentación en colecciones de series de tiempo fragmentadas.

Al fragmentar colecciones de series temporales, solo puede especificar los siguientes campos en la clave de fragmentación:

  • El metaField

  • Subcampos de metaField

  • El timeField

Puede especificar combinaciones de estos campos en la clave de fragmento. No se permiten otros campos, incluido _id, en el patrón de la clave de fragmento.

Cuando se especifica la clave del fragmento:

Tip

Evite especificar solo timeField como clave de fragmento. Dado que timeField aumenta de forma monótona, es posible que todas las escrituras aparezcan en un solo fragmento dentro del clúster. Idealmente, los datos se distribuyen uniformemente entre los fragmentos.

Para saber cómo elegir mejor una clave de fragmento, consulte:

Advertencia

A partir de MongoDB 8.0, las claves de partición que contienen el timeField quedan obsoletas para las colecciones de series de tiempo.

A partir de MongoDB 8.0.10, puedes volver a fragmentar una colección de series de tiempo. Todas las particiones en la colección de series de tiempo deben ejecutar la versión 8.0.10 o posterior para reparticionar.

Para obtener más información, consulte Repartir una colección.

La partición por zonas no admite colecciones de series de tiempo. El balanceador siempre distribuye los datos en colecciones de series de tiempo fragmentadas de manera uniforme en todos los fragmentos del clúster.

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

Nota

MongoDB admite lecturas de colecciones de series temporales en transacciones.

Las colecciones de series de tiempo son vistas no materializadas que se pueden escribir. Las limitaciones para las vistas se aplican a las colecciones de series de tiempo.

Las operaciones de lectura en colecciones de series temporales con la preocupación de lectura "snapshot" garantizan el aislamiento de instantáneas solo si no se realizan operaciones simultáneas de eliminación o cambio de nombre en las colecciones durante la operación de lectura. Recrear una colección de series temporales en el mismo espacio de nombres con una configuración de granularidad diferente no proporciona un aislamiento completo de instantáneas.

Volver

Mejores prácticas