Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Reemplazar un documento

Puedes reemplazar un documento en una colección llamando al método replace_one() en una instancia de Collection.

Pasa los siguientes parámetros al método replace_one():

  • filtro de query, que especifica los criterios a cumplir

  • Documento de reemplazo, que contiene los campos y valores que reemplazarán el primer documento coincidente

El método replace_one() devuelve un tipo UpdateResult que contiene información sobre los resultados de la operación de reemplazo, como la cantidad de documentos modificados.

Para aprender más sobre el método replace_one(), consulta la sección Reemplazar un Documento de la guía Modificar documentos.

Este ejemplo reemplaza un documento en la colección restaurants de la base de datos sample_restaurants. El ejemplo utiliza una estructura Restaurant que tiene campos name, borough y cuisine para modelar los documentos de la colección.

El siguiente código reemplaza un documento en el que el valor del campo name es "Landmark Coffee Shop" con un nuevo documento. MongoDB reemplaza el primer documento que coincide con el filtro de query.

Selecciona la pestaña Asynchronous o Synchronous para ver el código correspondiente para cada runtime:

use std::env;
use mongodb::{ bson::doc, Client, Collection };
use serde::{ Deserialize, Serialize };
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
borough: String,
cuisine: String,
name: String,
}
#[tokio::main]
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 };
#[derive(Serialize, Deserialize, Debug)]
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