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

128
Vistas
¿Cómo manejo correctamente este resultado de agregación vacío?

Tengo una función que se supone que me devuelve todas las preguntas sin respuesta de un usuario. Utiliza una "Selección" de monogodb-Collection para recuperar todos los question_id de las preguntas que el usuario aún no ha respondido.

Esto funciona perfectamente bien, siempre que el usuario haya respondido al menos una pregunta y la agregación no vuelva vacía.

 exports.showUnansweredByUser = async (req, res, next) => { const user_id = req.params.user_id; try { const questionIds = await Selection.aggregate( [ { $match: { "user_id": user_id } }, { $unset: [ "user_id", "selected_answer", "_id", "__v" ] }, { $group: { "_id": "", "question_id": { $push: "$question_id" } } } ] ) if(questionIds !== null){ const idsArray = questionIds[0].question_id console.log(idsArray) } /*if(idsArray !== null){ const unansweredQuestions = await Question.aggregate( [ { $addFields: { _id: { $toString: "$_id" }} }, { $match: { _id: { $nin: idsArray}} } ] ) res.json(unansweredQuestions) } else { console.log("all questions are unanswered.") /!*const unansweredQuestions = await Question.aggregate( [ { $addFields: { _id: { $toString: "$_id" }} } ] ) res.json(unansweredQuestions)*!/ }*/ } catch (err){ res.json({message: "show by user is not working"}); } }

Mi primera idea fue verificar si el idsArray resultante está vacío o no (como se muestra en el código comentado).

Mi segundo intento fue verificar si questionIds, el resultado de mi "esperar selección. agregado (..." está vacío.

Sé que supongo que la agregación vuelve "vacía" y mi Promesa de espera asincrónica nunca se cumple. Pero, ¿cómo manejo esto?

Quiero que funcione cuando hay una pregunta respondida alias. la Selección tiene un resultado y si no hay pregunta contestada aka. la Selección vuelve vacía.

about 4 years ago · Juan Pablo Isaza
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