Puede eliminar varios documentos de una colección en una sola operación llamando al eliminar_muchos()
método en un Collection instancia.
Pase un filtro de consulta al método delete_many() para eliminar los documentos de la colección que coincidan con el filtro. Si no incluye un filtro, MongoDB elimina todos los documentos de la colección.
El delete_many() método devuelve un tipo DeleteResult. Este tipo contiene información sobre la operación de eliminación, como el número total de documentos eliminados.
Para obtener más información sobre las operaciones de eliminación, consulte la Guía paraeliminar documentos.
Tip
Para eliminar todos los documentos de una colección, considere llamar al drop() método en una Collection instancia. Para obtener más información sobre el drop() método,consulte la sección "Eliminar una colección" de la guía "Bases de datos y colecciones".
Ejemplo
Este ejemplo elimina todos los documentos que coinciden con un filtro de consulta de la colección restaurants en la base de datos sample_restaurants. El método delete_many() elimina los documentos cuyo valor del campo borough es "Manhattan" y el del campo address.street es "Broadway".
Puede acceder a los documentos de la colección restaurants como instancias del tipo Document o como un tipo de dato personalizado. Para especificar qué tipo de dato representa los datos de la colección, sustituya el parámetro de tipo <T> en la línea resaltada por uno de los siguientes valores:
<Document>: Accede a documentos de la colección como documentos BSON<Restaurant>:Accede a los documentos de colección como instancias de la estructuraRestaurant, definida en la parte superior del código
Seleccione el Asynchronous o la pestaña Synchronous para ver el código correspondiente para cada entorno de ejecución:
use mongodb::{ bson::{ Document, doc }, Client, Collection }; use serde::{ Deserialize, Serialize }; struct Address { street: String, city: String, } struct Restaurant { name: String, borough: String, address: Address, } async fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri).await?; // Replace <T> with the <Document> or <Restaurant> type parameter let my_coll: Collection<T> = client .database("sample_restaurants") .collection("restaurants"); let filter = doc! { "$and": [ doc! { "borough": "Manhattan" }, doc! { "address.street": "Broadway" } ] }; let result = my_coll.delete_many(filter).await?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
// Your values might differ Deleted documents: 615
use mongodb::{ bson::{ Document, doc }, sync::{ Client, Collection } }; use serde::{ Deserialize, Serialize }; struct Address { street: String, city: String, } struct Restaurant { name: String, borough: String, address: Address, } fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri)?; // Replace <T> with the <Document> or <Restaurant> type parameter let my_coll: Collection<T> = client .database("sample_restaurants") .collection("restaurants"); let filter = doc! { "$and": [ doc! { "borough": "Manhattan" }, doc! { "address.street": "Broadway" } ] }; let result = my_coll.delete_many(filter).run()?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
// Your values might differ Deleted documents: 615