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

170
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
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