Los índices de colecciones de series temporales generalmente se comportan como índices de colecciones regulares, pero con varias consideraciones y limitaciones adicionales.
Si hay Si tiene índices secundarios en colecciones de series temporales y necesita degradar la versión de compatibilidad de características (FCV), primero debe eliminar cualquier índice secundario que sea incompatible con la FCV degradada. Para obtener más información, consulte setFeatureCompatibilityVersion.
A partir de la 6.0 versión, puede agregar un índice secundario a cualquier campo de una colección de series temporales. MongoDB indexa las colecciones de series temporales por grupos de documentos, en lugar de documentos individuales. Los grupos de series temporales contienen documentos con valores de metaField compartidos, ordenados por valores de timeField próximos entre sí. MongoDB indexa los valores mínimo y máximo de todos los campos, excepto el metaField. Indexar grupos en lugar de documentos individuales reduce el tamaño del índice y mejora la eficiencia de las consultas.
Tip
Para mejorar el rendimiento de las consultas, puede agregar manualmente índices secundarios a cualquier campo en su colección de series de tiempo.
Colección agrupada
De forma predeterminada, MongoDB agrupa colecciones de series temporales en función del tiempo del depósito.
Índices compuestos
Nuevo en la versión 6.3.
A partir de MongoDB 6.3, MongoDB crea un índice compuesto por defecto tanto en el campo metaField como en el timeField de una colección de series de tiempo. MongoDB utiliza este índice para mejorar el rendimiento y la velocidad de las queries.
Puede agregar un índice compuesto en los timeField metaFieldcampos, o de medición.
Índices parciales
Novedades en la versión 6.0.
A partir de MongoDB,6.0 puede utilizar los $or $inoperadores, y $geoWithin con índices parciales en una colección de series de tiempo.
No se pueden crear índices parciales en metaField y timeField.
TTL Indexes
Nuevo en la versión 7.0.
A partir de MongoDB,7.0 se puede crear un índice TTL con un basado partialFilterExpression únicamente en el metaField. En versiones anteriores 6.3 a, solo se podían crear índices TTL basados en el expireAfterSeconds parámetro.
Si su colección de series temporales no utiliza la opción expireAfterSeconds para caducar los documentos, la creación de un índice TTL parcial establece un tiempo de caducidad solo para los documentos coincidentes. Si la colección utiliza expireAfterSeconds para todos los documentos, puede usar un índice TTL parcial para caducar los documentos coincidentes antes.
Índices prohibidos
MongoDB no permite los siguientes tipos de índices en colecciones de series temporales:
No es posible crear índices dispersos en el metaField.
Mejores prácticas de indexación
Utilice el índice metaField para filtrar e igualdad.
Utilice timeField y otros campos indexados para consultas de rango.
Las estrategias generales de indexación también se aplican a las colecciones de series temporales. Para más información, consulte Estrategias de Indexación.
Para obtener más información y ejemplos, consulte Agregar índices secundarios a colecciones de series de tiempo.