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

139
Visualizações
La obtención de documentos de Mongoose dentro de una función de mapa devuelve la promesa pendiente, así como los datos

Así que tengo esta matriz de cadenas que estoy usando como filtro para obtener documentos de MongoDB usando Mongoose. Estoy recuperando con éxito los datos de la base de datos, pero también está devolviendo Promise { <pending> } en la consola aunque estoy ajustando la función de mapa con Promise.all .

Tenga en cuenta que esta función de mapa está anidada dentro de dos niveles de profundidad for in los bucles que estoy omitiendo por simplicidad.

Supongamos que esta es la matriz de cadenas:

 const subCategories = [ 'Politics', 'Entertainment' ];

Y esta es la función de mapa:

 const subCategoryID = await Promise.all( subCategories.map( async item => { try { const data = await SubCategory.findOne( { subCategory: item } ); return data; } catch( e ) { throw err; } })); console.log( subCategoryID );

Las promesas hacen que mi cabeza dé vueltas. He intentado aprender Promises más de 5-6 veces en los últimos 1-2 años y todavía me confunde. Entonces, si puede, proporcione una solución con Async/Await.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Si solo quieres el resultado, prueba este enfoque:

 const subCategories = [ 'Politics', 'Entertainment' ]; const queries = subCategories.map((i) => { return { subCategory: i }; }); const subCategoryID = await SubCategory.find({ $or: queries, }); console.log(subCategoryID);

el uso del operador $or se explica en el manual de mongodb:

El operador $or realiza una operación OR lógica en una matriz de dos o más <expressions> y selecciona los documentos que satisfacen al menos una de las <expressions> .

más sobre esto aquí .

En mongoose, puede usarlo en cualquier método de find .

para una explicación sobre su promesa, lo siento, no puedo ayudar.

Por favor marque respondido si esto resuelve su problema.

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