Hemos visto en conceptos anteriores que podemos eliminar todos los documentos de una colección mediante el método deleteMany y pasando un objeto literal vacío:
db.libros.deleteMany({})
Aprendimos también a recuperar algunos documentos con el método find empleando una serie de operadores relacionales, dichos operadores se pueden emplear en forma idéntica con los métodos deleteMany y deleteOne.
Hay dos métodos para eliminar documentos:
Almacenaremos una serie de documentos en una colección llamada libros y luego borraremos algunos de sus documentos:
use base1 db.libros.drop() db.libros.insertOne( { _id: 1, titulo: 'El aleph', autor: 'Borges', editorial: ['Siglo XXI','Planeta'], precio: 20, cantidad: 50 } ) db.libros.insertOne( { _id: 2, titulo: 'Martin Fierro', autor: 'Jose Hernandez', editorial: ['Siglo XXI'], precio: 50, cantidad: 12 } ) db.libros.insertOne( { _id: 3, titulo: 'Aprenda PHP', autor: 'Mario Molina', editorial: ['Siglo XXI','Planeta'], precio: 50, cantidad: 20 } ) db.libros.insertOne( { _id: 4, titulo: 'Java en 10 minutos', editorial: ['Siglo XXI'], precio: 45, cantidad: 1 } ) db.libros.find() db.libros.deleteOne({_id: 1}) db.libros.find() db.libros.deleteMany({precio : {$gte : 50 }}) db.libros.find()
Si queremos eliminar el documento que almacena en el campo el _id con valor 1 luego podemos utilizar la sintaxis:
db.libros.deleteOne({_id: 1})
Lo más conveniente es utilizar el método 'deleteOne' ya que solo uno puede cumplir esa condición al ser la clave primaria del documento.
Recordemos que la sintaxis alternativa para eliminar el documento con _id con valor 1 es:
db.libros.deleteOne({_id: { $eq : 1}})
La sintaxis anterior es buena recordar ya que los otros operadores relacionales hay que utilizarlos en forma obligatoria y no tienen una sintaxis alternativa como el $eq.
Para borrar todos los libros que tienen un precio mayor o igual a 50 tenemos:
db.libros.deleteMany({precio : {$gte : 50 }})
La ejecución del método deleteOne y deleteMany informa la cantidad de documentos eliminados:
Crear la colección 'articulos' en la base de datos 'base1' (eliminar la colección previamente), cargar luego 6 documentos:
use base1 db.articulos.drop() db.articulos.insertOne( { _id: 1, nombre: 'MULTIFUNCION HP DESKJET 2675', rubro: 'impresora', precio: 3000, stock: 20 } ) db.articulos.insertOne( { _id: 2, nombre: 'MULTIFUNCION EPSON EXPRESSION XP241', rubro: 'impresora', precio: 3700, stock: 5 } ) db.articulos.insertOne( { _id: 3, nombre: 'LED 19 PHILIPS', rubro: 'monitor', precio: 4500, stock: 2 } ) db.articulos.insertOne( { _id: 4, nombre: 'LED 22 PHILIPS', rubro: 'monitor', precio: 5700, stock: 4 } ) db.articulos.insertOne( { _id: 5, nombre: 'LED 27 PHILIPS', rubro: 'monitor', precio: 12000, stock: 1 } ) db.articulos.insertOne( { _id: 6, nombre: 'LOGITECH M90', rubro: 'mouse', precio: 300, stock: 4 } )
Imprimir todos los documentos de la colección 'articulos'.
Borrar los documentos de la colección 'articulos' cuyo rubro son impresoras, utilizar las dos sintaxis que permite MongoDB.
Borrar todos los artículos que tienen un _id mayor o igual a 5.
db.articulos.drop() db.articulos.insertOne( { _id: 1, nombre: 'MULTIFUNCION HP DESKJET 2675', rubro: 'impresora', precio: 3000, stock: 20 } ) db.articulos.insertOne( { _id: 2, nombre: 'MULTIFUNCION EPSON EXPRESSION XP241', rubro: 'impresora', precio: 3700, stock: 5 } ) db.articulos.insertOne( { _id: 3, nombre: 'LED 19 PHILIPS', rubro: 'monitor', precio: 4500, stock: 2 } ) db.articulos.insertOne( { _id: 4, nombre: 'LED 22 PHILIPS', rubro: 'monitor', precio: 5700, stock: 4 } ) db.articulos.insertOne( { _id: 5, nombre: 'LED 27 PHILIPS', rubro: 'monitor', precio: 12000, stock: 1 } ) db.articulos.insertOne( { _id: 6, nombre: 'LOGITECH M90', rubro: 'mouse', precio: 300, stock: 4 } ) db.articulos.find() db.articulos.deleteMany({rubro:'impresora'}) db.articulos.deleteMany({rubro:{$eq : 'impresora' }}) db.articulos.find() db.articulos.deleteMany({_id:{$gte : 5 }}) db.articulos.find()