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

121
Visualizações
¿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 à 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