Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Reemplazar un documento

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

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 el Reemplazar un documento sección 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 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 };
#[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

Volver

Actualiza múltiples