From 084e2eebff472f2486a5ff5dfaa2e359ea81832f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Omar=20S=C3=A1nchez=20Pizarro?= Date: Tue, 20 Jan 2026 12:55:53 +0100 Subject: [PATCH] no update fechas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Omar Sánchez Pizarro --- web/backend/services/mongodb.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/backend/services/mongodb.js b/web/backend/services/mongodb.js index 4f26469..7f09ea2 100644 --- a/web/backend/services/mongodb.js +++ b/web/backend/services/mongodb.js @@ -97,7 +97,9 @@ async function createIndexes() { 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.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 }); // Índices de compatibilidad con estructura antigua await db.collection('articles').createIndex({ username: 1 }); @@ -250,9 +252,11 @@ export async function getNotifiedArticles(filter = {}) { 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 .find(query) - .sort({ 'user_info.notified_at': -1, createdAt: -1 }) + .sort({ createdAt: -1, modified_at: -1 }) .toArray(); // Filtrar y transformar artículos según el usuario solicitado