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.