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

171
Views
¿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 answers
Answer question

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