Tengo una interfaz js, para un enrutador WAMP backend, que tiene una aplicación nodejs que publica datos codificados geográficamente codificados en JSON en tiempo real en un tema WAMP. La interfaz se suscribe a ese tema WAMP y visualiza los objetivos codificados geográficamente en movimiento en un mapa. Esos datos también se almacenan en el backend dentro de MongoDB.
Necesito agregar una función mediante la cual el usuario pueda solicitar, reproducir, detener, rebobinar y avanzar rápidamente a través de los datos archivados. Tengo una función nodejs de backend que recibe los tiempos de inicio/finalización de la consulta desde el frontend, realiza la consulta MongoDB y usa la interfaz MongoDB db.find.stream() para publicar los datos en un tema WAMP en tiempo real. El método stream.on("data", ...) pausa/reanuda la transmisión para reproducir los datos en intervalos de tiempo. Esto funciona bien para reproducir y detener. Pero no sé cómo manejar el rebobinado y el avance rápido. Según lo que he visto, no puede rebobinar o iterar hacia atrás en una secuencia.
Mi enfoque de fuerza bruta sería cargar todo el enorme resultado de la consulta en una matriz en la memoria y tener métodos que la interfaz llama para controlar el incremento/decremento del puntero de la matriz dependiendo de si están reproduciendo o rebobinando para que puedan ver los objetivos en movimiento. en el mapa y encontrar lo que buscan.
¿Existe una API o biblioteca que me permita realizar el rebobinado sin cargar la matriz en la memoria? ¿Posiblemente almacenar el resultado en un archivo y avanzar y retroceder a través de él?