Docs Menu
Docs Home
/ /
Time Series
/ / /

Limitaciones de la recopilación de series temporales

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 se pueden utilizar las etapas de canalización de agregación $out y para $merge generar o fusionar colecciones de series de tiempo de otra colección.

Debido a la estructura de datos única de las colecciones de series temporales, MongoDB no puede indexarlas eficientemente para valores distintos. Evite usar el distinct comando o db.collection.distinct() el método auxiliar en colecciones de series temporales. En su lugar, utilice 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. Crea un índice compuesto meta.project en meta.type y y admite la agregación.

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

  3. La etapa $group utiliza meta.type como clave de grupo para generar un documento por 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 eliminación deben cumplir los siguientes requisitos:

  • La consulta sólo puede coincidir con valores de campo metaField.

  • El comando de eliminación no puede limitar el número de documentos que se eliminarán. Debe usar un comando de eliminación con justOne: false el método deleteMany() o.

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

  • La consulta sólo puede coincidir con valores de 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 actualización no puede limitar el número de documentos que se actualizarán. Debe usar un comando de actualización con multi: true el método updateMany() o.

  • Es posible que el comando de actualización no establezca upsert: true.

Para eliminar automáticamente los datos antiguos, configure 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.

Puede agregar índices secundarios a los campos timeField metaFieldy. Si el valor del metaField campo es un documento, también puede crear índices secundarios en los campos dentro de ese documento.

El metaField no admite los siguientes tipos de índice:

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

No se puede crear una colección de series de tiempo como una colección limitada.

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

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 establecer los parámetros timeField y metaField de una colección al crearla. Una vez creada, estos parámetros no se pueden modificar.

Una vez establecido el granularity, solo se puede aumentar un nivel a la vez. De "seconds" a "minutes" o de "minutes" a "hours". No se permiten otros cambios. Si necesita cambiar el granularity de "seconds" a "hours", primero aumente el granularity a "minutes" y luego a "hours".

A partir de MongoDB 5.0.6, se admiten colecciones de series temporales fragmentadas. Al usarlas, no se puede modificar el granularity de una colección.

En versiones anteriores a MongoDB 5.0.6, no es posible fragmentar colecciones de series temporales.

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

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

Nota

Las lecturas de colecciones de series temporales se admiten en las transacciones.

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

Time Series

En esta página