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

175
Visualizações
¿Cómo puedo usar mongoose para eliminar algo en una matriz usando una API?

Estoy creando una aplicación de tareas pendientes y en la base de datos tengo un documento de empleado que contiene 2 matrices (todo y listo). Las tareas se almacenan aquí, y actualmente puedo agregar tareas a las matrices, pero tengo problemas para averiguar cómo hacer que mi API funcione para eliminarlas.

Así es como se ve mi documento de empleado

 {"_id":{"$oid":"61797a3ed15ad09b88d167ab"},"empId":"1008","password":"password2","firstName":"test","lastName":"user","__v":5,"done":[],"todo":[{"_id":{"$oid":"61870bfe6ac33427b8406f7d"},"text":"testtask","id":"1"}]}

Actualmente recibo errores cuando intento probar usando SoapUI, muchos similares a este "TypeError: Cannot read property 'findByIdAndDelete' of undefined" o Cannot DELETE /api/employees/1007/6184645df6bbd93340c0e390

Aquí está mi API de eliminación

 * * Delete task */ router.delete("/:empId/tasks/:id", async (req, res) => { try { Employee.findByIdAndDelete( { _id: req.params.id }, function (err, employee) { if (err) { console.log(err); res.status(500).send({ message: "Internal server error: " + err.message, }); } else { console.log(employee); console.log( "Task with the id of" + req.params.id + " has been deleted successfully" ); res.json(employee); } } ); } catch (e) { console.log(e); res.status(500).send({ message: "Internal server error: " + e.message, }); } });

Actualmente, puedo recibir mensajes en la consola que dicen que se eliminó, pero en realidad no se eliminó en la base de datos.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¡Bienvenido a stackoverflow! Debe usar updateOne con $pull. Probar:

 Employee.updateOne({ empId: req.params.empId }, { $pull: { todo: { _id: req.params.id } } })

Referencia: https://stackoverflow.com/a/27917378/9459826

Documentos de MongoDB:https://docs.mongodb.com/manual/reference/operator/update/pull/

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