Puede reemplazar un documento en una colección llamando al reemplazar_uno() método en un
Collection instancia.
Pase los siguientes parámetros al método replace_one():
Filtro de consulta, que especifica los criterios a coincidir
Documento de reemplazo, que contiene los campos y valores que reemplazarán al primer documento coincidente
El replace_one() método devuelve un tipo UpdateResult que contiene información sobre los resultados de la operación de reemplazo, como la cantidad de documentos modificados.
Para obtener más información sobre el método replace_one(), consulte la
Sección Reemplazar un documento de la guía Modificar documentos.
Ejemplo
Este ejemplo reemplaza un documento de la colección restaurants de la base de datos sample_restaurants. El ejemplo utiliza una estructura Restaurant con los campos name, borough y cuisine para modelar los documentos de la colección.
El siguiente código reemplaza un documento cuyo valor del campo name es "Landmark Coffee Shop" por un nuevo documento. MongoDB reemplaza el primer documento que coincide con el filtro de consulta.
Seleccione el Asynchronous o la pestaña Synchronous para ver el código correspondiente para cada entorno de ejecución:
use std::env; use mongodb::{ bson::doc, Client, Collection }; use serde::{ Deserialize, Serialize }; struct Restaurant { borough: String, cuisine: String, name: String, } async fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri).await?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let filter = doc! { "name": "Landmark Coffee Shop" }; let replacement = Restaurant { borough: "Brooklyn".to_string(), cuisine: "Café/Coffee/Tea".to_string(), name: "Harvest Moon Café".to_string(), }; let res = my_coll.replace_one(filter, replacement, None).await?; println!("Replaced documents: {}", res.modified_count); Ok(()) }
Replaced documents: 1
use std::env; use mongodb::{ bson::doc, sync::{ Client, Collection } }; use serde::{ Deserialize, Serialize }; struct Restaurant { borough: String, cuisine: String, name: String, } fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri)?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let filter = doc! { "name": "Landmark Coffee Shop" }; let replacement = Restaurant { borough: "Brooklyn".to_string(), cuisine: "Café/Coffee/Tea".to_string(), name: "Harvest Moon Café".to_string(), }; let res = my_coll.replace_one(filter, replacement, None)?; println!("Replaced documents: {}", res.modified_count); Ok(()) }
Replaced documents: 1