MongoDB agrupa documentos con coincidencias metaFields para optimizar el almacenamiento y la latencia de query de datos de series de tiempo. Tu elección de metaField tiene el mayor impacto en la optimización de las consultas en su aplicación.
Creando consultas en el metaField
Se query una colección de series de tiempo de la misma manera que se querya una colección estándar de MongoDB. Para obtener un ejemplo de consulta y un ejemplo de pipeline de agregación, consulte Query a Time Series Collection. Para obtener una lista de las mejores prácticas de query, consulta Mejores prácticas de query.
Las consultas sobre datos de series de tiempo suelen centrarse en una sola serie temporal de la colección. Por ejemplo, considera una colección de series de tiempo que rastrea datos de acciones usando el siguiente esquema:
{ _id: 573a1397f29313caabce8347, "ticker": "MDB", "timestamp": ISODate("2024-07-24T13:45:00.000Z"), "price": 248.21, "volume": 6930 }
La colección tiene las siguientes configuraciones:
timeseries: { timeField: "timestamp", metaField: "ticker", granularity: "seconds" }
MongoDB agrupa documentos con valores ticker coincidentes. En lugar de tener que comprobar coincidencias en todos los campos de todos los documentos, el servidor solo debe comprobar el metaField, en este caso el ticker, para acotar el rango de búsqueda a una serie de tiempo única. Esto se ajusta al caso de uso esperado, que es buscar actividad en una sola acción. Un usuario que busca información sobre acciones de MongoDB (MDB) no necesita considerar resultados para Amazon (AMZN).
Consulta del campo de tiempo
La segunda dimensión principal para consultar datos de series de tiempo es el tiempo. Dado que MongoDB agrupa los documentos que tienen tanto un valor idéntico de metaField como valores de timeField cercanos, esto acota aún más el alcance de una query a un rango de buckets. Las transacciones recientes se mantienen en la memoria, por lo que es fácil transmitir datos en tiempo real.