Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
Node js, mongo DB obtiene datos de múltiples colecciones usando async

Hola, estoy tratando de obtener todos mis blogs de DB y cambiar el nombre del autor de otra colección de la base de datos y luego renderizarlos en un archivo ejs, sin embargo, la página se muestra antes de que se llene la matriz.

 app.get('/', async (req, res) => { let blogList = new Array(); await Blog.find({}, function (err, foundBlog) { console.log(foundBlog); if (err) { console.log(err); } else { foundBlog.forEach(async (blog) => { await Author.findById(blog.author, async (err, author) => { if (err) { console.log(err); } else { blog.author = author.name; console.log('this is the blogs' + blog); blogList.push(blog); console.log('array length 1 is ' + blogList.length); } }); }); console.log('array length 2 is ' + blogList.length); console.log(blogList); res.render('home', { blogs: blogList }); } }); });
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Utilice la referencia del autor en el blog. En otras palabras hacer una relación de blog con autor. Y luego su backend debería ser el siguiente:

 app.get('/', async (req, res) => { const blogs=await Blog.find({}).populate('author').exec(); // field name author is being populated. res.render('home', { blogs }); } ); const BlogSchema=new mongoose.Schema({ ... rest of fields, author:{ type:ObjectId, ref:"Author" // here it is model name } });

Con este código ahora todo su objeto de autor estará incrustado en cada blog como:

 blog={ name:"", author:{ name:"Abc", } }

Y puede obtener fácilmente los detalles del autor accediendo a blog.author.name.

about 4 years ago · Juan Pablo Isaza Denunciar

0

para su consulta, puede explorar poblar en su Mongo Schema en la colección.

 const BlogSchema = new mongoose.Schema({ author:{ type:ObjectId, ref:"Author" //here it is model name } }) const Blog = mongoose.model("Blog", BlogSchema ) const AutherSchema = new mongoose.Schema({ _id:{ type:ObjectId } }) const Auther = mongoose.model("Auther", AutherSchema) app.get('/', async (req, res) => { const blogs = await Blog.find({}).populate('author').exec(); // field name author is being populated. res.send(blogs) } )
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda