"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo elimino un objeto de una matriz en MongoDB?

¿Cómo elimino un objeto de una matriz en MongoDB?

Publicado el 2024-11-19
Navegar:613

How do I remove an object from an array in MongoDB?

MongoDB: eliminar un objeto de una matriz

En MongoDB, puede eliminar un objeto de una matriz incrustada en un documento usando la tecla $ operador de tracción. Si desea eliminar un objeto específico de una matriz, debe proporcionar una consulta que coincida con el objeto exacto.

Considere el siguiente documento:

{
   _id: 5150a1199fac0e6910000002,
   name: 'some name',
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}

Para eliminar el elemento con ID: 23 de la matriz de elementos, use el siguiente comando:

db.mycollection.update(
    { '_id': ObjectId("5150a1199fac0e6910000002") }, 
    { $pull: { items: { id: 23 } } },
    false, // Upsert
    true, // Multi
);

Este comando actualiza el documento eliminando el elemento de la matriz. La consulta especifica el documento utilizando el campo _id y el operador $pull apunta a la matriz de elementos. Dentro de la operación $pull, puede especificar una consulta que coincida con el objeto que se eliminará. En este caso, hacemos coincidir el objeto con id: 23.

Implementación de Mongoose/Node.js

En Mongoose, puedes eliminar un objeto de una matriz usando el método pull():

const Model = mongoose.model('Model', new mongoose.Schema({
  items: [{
    id: Number,
    name: String
  }]
}));

Model.update(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }, // Update all matching documents
  (err, result) => { if (!err) console.log(result); }
);

Este código eliminará el elemento con id: 23 de la matriz de elementos de todos los documentos que coincidan con el _id especificado.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3