sql >> Base de Datos >  >> NoSQL >> MongoDB

Eliminar MongoDB ()

En MongoDB el db.collection.remove() El método elimina documentos de una colección. En otras palabras, los elimina.

La collection part es el nombre de la colección de la que se van a eliminar los documentos.

Puede eliminar todos los documentos, algunos documentos o un solo documento según sea necesario.

Eliminar todos los documentos

En este ejemplo, eliminamos todos los documentos de una colección llamada employees :

db.employees.remove({})

Resultado:

WriteResult({ "nRemoved" : 5 })

El resultado nos muestra que se eliminaron cinco documentos.

Eliminar documentos seleccionados

En este ejemplo, eliminamos solo algunos documentos.

Primero, completemos nuestra colección de empleados nuevamente:

db.employees.insertMany([
    { _id: 1, name: "Sandy", salary: 55000 },
    { _id: 2, name: "Sarah", salary: 128000 },
    { _id: 3, name: "Fritz", salary: 25000 },
    { _id: 4, name: "Chris", salary: 45000 },
    { _id: 5, name: "Beck", salary: 82000 }
    ])

Ahora, eliminemos a todos los empleados que ganan más de 80 000 al año.

db.employees.remove({ "salary": { $gt: 80000 } })

Resultado:

WriteResult({ "nRemoved" : 2 })

Esta vez solo se eliminaron dos documentos.

Echemos un vistazo a la colección.

db.employees.find()

Resultado:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }

Como era de esperar, los dos principales asalariados han dejado la empresa.

Eliminar un documento

Hay un par de formas de eliminar un solo documento de una colección. El método que utilice dependerá de lo que necesite hacer.

Puedes:

  • Eliminar un documento específico
  • Utilice el justOne parámetro

Eliminar un documento específico

Si necesita eliminar un documento específico, puede especificar el _id del documento. valor para eliminar ese documento específico.

Entonces, si quisiéramos eliminar a Fritz de la colección anterior, podríamos especificar su _id valor de 3 . Así:

db.employees.remove({ "_id": 3 })

Resultado:

WriteResult({ "nRemoved" : 1 })

Y revisemos la colección nuevamente:

db.employees.find()

Resultado:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }

Como era de esperar, Fritz ahora ha desaparecido.

Usar el justOne Parámetro

Alternativamente, puede usar el justOne parámetro para limitar la eliminación a un solo documento. Esto elimina el primer documento que coincida con los criterios de eliminación.

Para demostrar este punto con la mayor claridad posible, eliminemos todos los documentos restantes de la colección y luego volvamos a llenarla:

db.employees.remove({})
db.employees.insertMany([
    { _id: 1, name: "Sandy", salary: 55000 },
    { _id: 2, name: "Sarah", salary: 128000 },
    { _id: 3, name: "Fritz", salary: 25000 },
    { _id: 4, name: "Chris", salary: 45000 },
    { _id: 5, name: "Beck", salary: 82000 }
    ])

Bien, sabemos que hay cinco documentos en nuestra colección.

Ahora usemos el justOne parámetro para eliminar un solo documento.

db.employees.remove({}, "justOne: true")

Resultado:

WriteResult({ "nRemoved" : 1 })

Y revisemos la colección para ver qué documento se eliminó.

db.employees.find()

Resultado:

{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Como era de esperar, el primer documento fue eliminado.

El justOne el parámetro también tiene otra sintaxis. También puede usarlo dentro de un documento. Deberá hacer esto si va a pasar otros argumentos al método.

He aquí un ejemplo.

db.employees.remove(
    {}, 
    {
        justOne: true,
        writeConcern: { w: "majority", wtimeout: 3000 },
        collation: { locale: "de", strength: 1 }
    }
)

Resultado:

WriteResult({ "nRemoved" : 1 })

Y echemos otro vistazo a la colección

db.employees.find()

Resultado:

{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Como era de esperar, el siguiente documento fue eliminado.

Más información

Consulte la documentación de MongoDB para obtener más información.