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

189
Views
Réplica del bucle "for" en la agregación de mangosta

Tengo un código como este

 const quizzes = await Quiz.find({}); const filtered = []; for (const quiz of quizzes){ const response = await Response.aggregate([ { $match: { userID: `${userID}`, quizID: `${quiz._id}` } } ]); if (response.length === 0){ filtered.push(quiz._id); } } console.log(filtered);

Quiero escribir un método agregado para reemplazar mi bucle for, ¿cómo puedo lograrlo? Supongo que no hay ningún requisito para publicar mis esquemas, todo lo que necesito es ayuda sobre cómo recorrer los elementos de una colección completa y realizar alguna consulta sobre ellos con alguna otra colección.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

  • $lookup para unirse a la recopilación de respuestas y hacer coincidir quizID de prueba y el userID de usuario no es igual al ID de usuario de userID
  • $match si la response devuelta de la búsqueda no está vacía
  • $group por nulo y construir una matriz de quizID en filtered
 const response = await Quiz.aggregate([ { $lookup: { from: "response", let: { quizID: "$_id" }, pipeline: [ { $match: { userID: { $ne: userID }, $expr: { $eq: ["$$quizID", "$quizID"] } } } ], as: "response" } }, { $match: { response: { $ne: [] } } }, { $group: { _id: null, filtered: { $push: "$_id" } } } ]); const filtered = response.length ? response[0].filtered : []; console.log(filtered);

Patio de recreo

over 4 years ago · Santiago Trujillo Report

0

Supongo que sería genial si también hubiera proporcionado modelos, pero de todos modos, si desea eliminar el bucle aquí, lo que sugiero:

 quizz_ids = quizzes.map(q => q._id); const responses = await Response.aggregate([ { $match: { userID: `${userID}`, quizID: { $in: quizz_ids} } } ]);
over 4 years ago · Santiago Trujillo 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!