no update fechas

Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
This commit is contained in:
Omar Sánchez Pizarro
2026-01-20 12:55:53 +01:00
parent 421fee1938
commit 084e2eebff

View File

@@ -97,7 +97,9 @@ async function createIndexes() {
await db.collection('articles').createIndex({ 'user_info.username': 1 }); await db.collection('articles').createIndex({ 'user_info.username': 1 });
await db.collection('articles').createIndex({ 'user_info.worker_name': 1 }); await db.collection('articles').createIndex({ 'user_info.worker_name': 1 });
await db.collection('articles').createIndex({ 'user_info.is_favorite': 1 }); await db.collection('articles').createIndex({ 'user_info.is_favorite': 1 });
await db.collection('articles').createIndex({ 'user_info.notified_at': -1 }); // Índices para ordenamiento (NO usar user_info.notified_at porque es un array)
await db.collection('articles').createIndex({ createdAt: -1 });
await db.collection('articles').createIndex({ modified_at: -1 });
await db.collection('articles').createIndex({ expiresAt: 1 }, { expireAfterSeconds: 0 }); await db.collection('articles').createIndex({ expiresAt: 1 }, { expireAfterSeconds: 0 });
// Índices de compatibilidad con estructura antigua // Índices de compatibilidad con estructura antigua
await db.collection('articles').createIndex({ username: 1 }); await db.collection('articles').createIndex({ username: 1 });
@@ -250,9 +252,11 @@ export async function getNotifiedArticles(filter = {}) {
query['user_info.worker_name'] = filter.worker_name; query['user_info.worker_name'] = filter.worker_name;
} }
// Ordenar SOLO por campos a nivel de artículo, NO por user_info.notified_at
// porque user_info es un array y puede causar orden incorrecto
const articles = await articlesCollection const articles = await articlesCollection
.find(query) .find(query)
.sort({ 'user_info.notified_at': -1, createdAt: -1 }) .sort({ createdAt: -1, modified_at: -1 })
.toArray(); .toArray();
// Filtrar y transformar artículos según el usuario solicitado // Filtrar y transformar artículos según el usuario solicitado