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