Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/

Atualizar vários documentos

Você pode atualizar vários documentos em uma coleção chamando o métodoupdate_many() em uma Collection instância.

Passe os seguintes parâmetros para o método update_many() :

  • Filtro de query, que especifica os critérios a serem correspondidos

  • Documento de atualização, que especifica as atualizações a serem feitas em todos os documentos correspondentes

O update_many() 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_many() , consulte a seção Atualizar documentos do guia Modificar documentos.

Este exemplo atualiza um documento na coleção restaurants do banco de banco de dados sample_restaurants. O método update_many() adiciona o campo near_me a documentos nos quais o valor do campo address.street é "Sullivan Street" e o campo borough é "Manhattan".

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 estrutura Restaurant, 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::doc, Client, Collection };
use bson::Document;
use serde::{ Deserialize, Serialize };
#[derive(Debug, Serialize, Deserialize)]
struct Address {
street: String,
city: String,
}
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
borough: String,
address: Address,
}
#[tokio::main]
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! {
"address.street": "Sullivan Street",
"borough": "Manhattan"
};
let update = doc! { "$set": doc! { "near_me": true } };
let res = my_coll.update_many(filter, update).await?;
println!("Updated documents: {}", res.modified_count);
Ok(())
}
// Your values might differ
Updated documents: 22
use std::env;
use mongodb::{
bson::{ Document, doc },
sync::{ Client, Collection }
};
use serde::{ Deserialize, Serialize };
#[derive(Debug, Serialize, Deserialize)]
struct Address {
street: String,
city: String,
}
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
borough: String,
address: Address,
}
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! {
"address.street": "Sullivan Street",
"borough": "Manhattan"
};
let update = doc! { "$set": doc! { "near_me": true } };
let res = my_coll.update_many(filter, update).run()?;
println!("Updated documents: {}", res.modified_count);
Ok(())
}
// Your values might differ
Updated documents: 22

Voltar

UpdateOne