Explica cómo las time series collections almacenan mediciones por tiempo y metadata, aplican buckets internos y optimizan ingestión, retención y consultas temporales.
Las time series collections optimizan mediciones asociadas a un instante y a una serie estable. MongoDB agrupa internamente las mediciones en buckets comprimidos, pero la aplicación trabaja con documentos lógicos individuales.
Indica frecuencia aproximada de llegada. Ayuda a configurar buckets. La elección y opciones disponibles dependen de versión; cambiarla requiere comprobar compatibilidad y comportamiento.
db.sensorReadings.aggregate([{$match:{'metadata.deviceId': deviceId,timestamp:{$gte: start,$lt: end }}},{$group:{_id:{$dateTrunc:{date:'$timestamp',unit:'hour',timezone:'America/Bogota'}},averageTemperature:{$avg:'$temperatureC'},samples:{$sum:1}}},{$sort:{_id:1}}]);
Reintentos de dispositivos pueden insertar la misma medición. Una identidad como {deviceId, sequence} puede necesitar índice unique, pero verifica compatibilidad y coste en time series para la versión utilizada.
Otra opción es deduplicar en ingestión o aceptar duplicates y corregir en aggregation.
Las capacidades sobre time series han evolucionado. No asumas que todas las operaciones disponibles para colecciones normales tienen la misma compatibilidad o rendimiento. Verifica versión y FCV.
Time series sharded necesita una shard key compatible. Metadata suele participar para distribuir series; timestamp puro puede concentrar escrituras. Evalúa targeting, cardinalidad y versión.
Time series collections optimizan datos temporales append-only mediante buckets internos. El diseño gira alrededor de timeField, metadata estable, frecuencia, retención y queries por rango. No sustituyen una colección normal para cualquier entidad con fecha.
Comprueba lo aprendido
¿Qué pertenece al metaField?
¿Qué workload es ideal?
¿Por qué timestamp puro puede ser una mala shard key?