Puedes borrar un documento de una colección llamando al eliminar_uno() método sobre un Collection
instancia.
Pasa un filtro de query al método delete_one() para hacer coincidir el documento que deseas borrar de la colección. Si varios documentos coinciden con el filtro de query, MongoDB elimina el primer documento coincidente según su orden natural en la base de datos o según el orden especificado en una instancia de Opciones de eliminación.
El método delete_one() devuelve un tipo DeleteResult. Este tipo contiene información sobre el resultado de la operación de borrado, como el número total de documentos eliminados.
Para obtener más información sobre las operaciones de borrar, consulte la Guía borrar documentos.
Ejemplo
Este ejemplo elimina un documento que coincide con un filtro de consulta de la colección restaurants en la base de datos sample_restaurants. El método delete_one() elimina el primer documento cuyo valor del campo name sea "Haagen-Dazs" y el del campo borough sea "Brooklyn".
Se puede acceder a los documentos en la colección restaurants como instancias del tipo Document o de un tipo de datos personalizado. Para especificar el tipo de dato que representa la colección de datos, reemplaza el parámetro de tipo <T> en la línea resaltada con uno de los siguientes valores:
<Document>: Accede a documentos de la colección como documentos BSON<Restaurant>: Accede a documentos de la colección como instancias de la estructuraRestaurant, definida en la parte superior del código
Selecciona 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 Restaurant { name: String, borough: String, } 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! { "name": "Haagen-Dazs" }, doc! { "borough": "Brooklyn" } ] }; let result = my_coll.delete_one(filter).await?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
Deleted documents: 1
use mongodb::{ bson::{ Document, doc }, sync::{ Client, Collection } }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, borough: String, } 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! { "name": "Haagen-Dazs" }, doc! { "borough": "Brooklyn" } ] }; let result = my_coll.delete_one(filter).run()?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
Deleted documents: 1