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

177
Vistas
¿Cómo puedo eliminar una entrada de matriz en MongoDB con una API de eliminación?

Estoy creando una aplicación que gestiona tareas sensibles al tiempo. Tengo API para crear tareas y recuperar tareas, y actualmente estoy tratando de hacer que mi API de eliminación funcione.

Un empleado tiene una matriz en MongoDB que contiene tareas pendientes con texto y estoy tratando de eliminar la tarea por ID en SoapUI. Con mi código actual, la solicitud de eliminación simplemente se agota después de un minuto más o menos.

Aquí está mi API de eliminación actual

 router.delete("/:empId/tasks/:id", async (req, res) => { try { Employee.findByIdAndDelete( { empId: req.params.empId, }, { $pull: { todo: { _id: req.params.id, }, }, } ); } catch (e) { console.log(e); res.status(500).send({ message: "Internal server error: " + e.message, }); } });

esquema actual

 let itemSchema = new Schema({ text: { type: String }, _id: { type: String }, });

tarea.servicio

 deleteTask(empId: number, task: string, _id: number): Observable<any> { return this.http.delete('/api/employees/' + empId + '/tasks/' + _id); }

y un ejemplo de un documento de empleado en MongoDB

 {"_id":{"$oid":"61797a51d15ad09b88d167af"},"empId":"1012", "firstName":"web","lastName":"developer","__v":1,"done":[],"todo":[{"_id":"1","text":"test"}]}
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando usa findByIDAndDelete, elimina todo el documento. Lo que necesita es actualizar ese documento en particular usando update() / findOneAndUpdate() / findByIdAndUpdate() . También debe esperar/usar una devolución de llamada para devolver el valor, como,

 collection.findOneAndUpdate({_id:docId },{ $pull: {"todo":{"_id":yourId} }, }, function(error, data){ if(error){ return error} else {return data} })
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