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

140
Vistas
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 Respuestas
Responde la pregunta

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 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