Tengo un código que almacena información meteorológica cada 30 segundos en una colección de MongoDB. Descubrí una forma de publicar los datos de las últimas 24 horas desde el servidor al cliente, que es la siguiente:
Servidor
Meteor.publish('mountCarmelData', function dataPublication(){ return MountCarmel.find({}, { limit: 2880//max of 24 hours }); });Cliente
Meteor.subscribe('mountCarmelData');Si se inserta un nuevo registro y la cantidad total de registros en la colección es inferior al límite, este nuevo registro se envía al cliente automáticamente. El problema es que cuando hay más de 2880 registros guardados en la colección, los nuevos registros ya no se envían al cliente.
Me gustaría saber si hay alguna forma de enviar siempre los registros 2880 más recientes al cliente. O tal vez una forma de enviar el registro recién insertado al lado del cliente.
Necesito las últimas 24 horas de datos para trazar en un gráfico y necesito los datos recién recopilados (que se guardan en la colección cada 30 segundos) para actualizar dinámicamente las variables meteorológicas.
necesita ordenar su colección en el momento de la publicación. Supongo que tiene algún tipo de marca de tiempo en cada registro, puede ordenar por eso. p.ej
{ limit: 2800, sort: {createdAt: -1} }-1 ordenará de forma descendente, del más nuevo al más antiguo.
nota: este tipo es para la publicación, para asegurarse de que está publicando los datos que desea para el cliente. si su cliente necesita los datos en un orden diferente (es decir, descender no es la opción correcta allí), entonces el cliente puede ordenar los datos publicados como lo necesite.