Admito una aplicación Meteor 1.2.1 heredada que usa MongoDB Atlas y sin cambios aparentes en el código, de repente no muestra ningún documento: el código no se ha cambiado durante al menos 5 meses.
Mirando en la base de datos, los documentos están allí, pero en el lado del servidor , las llamadas find().fetch() están devolviendo 0 documentos:
var documents = Articles.find().fetch(); console.log(`++ Found: ${documents.length} articles`);registros:
++ Found: 0 articlesCuriosamente, si agarro la conexión de base de datos sin procesar que está usando Meteor y hago una consulta yo mismo, se encuentran los datos:
var getDocumentCounts = function (collectionName) { var Future = Npm.require('fibers/future'), future = new Future(); var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db; db.collection(collectionName).count( function(error, results) { if (error) throw new Meteor.Error(500, "failed"); future.return(results); } ); return future.wait(); } var result = getDocumentCounts('articles'); console.log(`articles: ${result}`);registros:
articles: 259 La aplicación usa algunos paquetes NPM, pero usa un npm-shrinkwrap.json (heredado nuevamente) para garantizar que sus versiones no se actualicen accidentalmente durante un reinicio/reconstrucción.
El nodo es de la era Jurásica @ v0.10.41
No puedo pensar por qué la aplicación desarrollaría repentinamente este problema. Buscando una solución simple en lugar del prolijo "actualizar todo"
También es interesante que si me conecto a mi dev local mongo db, todo funciona bien. MongDB Atlas usa fragmentos, mientras que el mongo local no, pero ha tenido esos fragmentos durante muchos meses.
Mi mejor opinión es que el problema se debe al hecho de que el controlador mongo utilizado por su versión Meteor ya no es compatible con la versión mongo que se ejecuta en Atlas. Compruebe la versión de Atlas MongoDB, si es posible.