Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

147
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!