Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

199
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda