Estoy tratando de eliminar un objeto de proyecto de una matriz.
proyectos :
{ _id : ..., userName: milad , projets : [ { .. projectId, pName, location .... A }, { .. projectId, pName, location .... B }, { .. projectId, pName, location .... C }, ] }¿Cómo eliminar el Proyecto B en MongoDB?
proyectos después de eliminar el Proyecto B :
{ _id : ..., userName: milad , projets : [ { .. projectId, pName, location .... A }, { .. projectId, pName, location .... C }, ] }Si ha recibido un documento de su base de datos, puede eliminar un objeto de su matriz, según la ubicación, de la siguiente manera:
const doc = { _id: '507f191e810c19729de860e0', userName: 'milad', projects: [ { _id: '507f191e810c19729de860ea', pName: 'projectA', location: 'a' }, { _id: '507f191e810c19729de860eb', pName: 'projectB', location: 'b' }, { _id: '507f191e810c19729de860ec', pName: 'projectC', location: 'c' } ] } // remove project b (one method, there are many more) doc.projects = doc.projects.filter((project) => project.location !== 'b');Después del proceso de filtro, debe volver a guardarlo en su mongoDB:
Mangosta: (ejemplo)
await doc.save();otra respuesta
db.collection('Profile').updateOne({ userName: username, "Projects.projectId": projectId }, { $pull: { 'Projects': { projectId: projectId } }}) }