Atualizar um documento
Nesta página
Você pode atualizar um documento em uma coleção chamando o métodoupdate_one() em uma Collection
instância.
Passe os seguintes parâmetros para o método update_one()
:
Filtro de query, que especifica os critérios a serem correspondidos
Documento de atualização, que especifica as atualizações a serem feitas no primeiro documento correspondente
O update_one()
método retorna um UpdateResult tipo que contém informações sobre os resultados da operação de atualização, como o número de documentos modificados.
Para saber mais sobre o método update_one()
, consulte a seção Atualizar documentos do guia Modificar documentos.
Exemplo
Este exemplo atualiza um documento na coleção restaurants
do banco de banco de dados sample_restaurants
. O método update_one()
adiciona o campo price
ao primeiro documento no qual o valor do campo name
é "Spice Market"
.
Você pode acessar os documentos na coleção restaurants
como instâncias do tipo Document
ou um tipo de dados personalizado. Para especificar qual tipo de dados representa os dados da coleção, substitua o parâmetro de tipo <T>
na linha realçada por um dos seguintes valores:
<Document>
: acessa documentos de coleção como documentos BSON<Restaurant>
: acessa documentos de coleção como instâncias da estruturaRestaurant
, definidas na parte superior do código
Selecione a aba Asynchronous ou Synchronous para ver o código correspondente para cada tempo de execução:
use std::env; use mongodb::{ bson::{ Document, doc }, Client, Collection }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, price: 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! { "name": "Spice Market" }; let update = doc! { "$set": doc! {"price": "$$$"} }; let res = my_coll.update_one(filter, update).await?; println!("Updated documents: {}", res.modified_count); Ok(()) }
Updated documents: 1
use std::env; use mongodb::{ bson::{ Document, doc }, sync::{ Client, Collection } }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, price: 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! { "name": "Spice Market" }; let update = doc! { "$set": doc! {"price": "$$$"} }; let res = my_coll.update_one(filter, update).run()?; println!("Updated documents: {}", res.modified_count); Ok(()) }
Updated documents: 1