Excluir vários documentos
Você pode excluir vários documentos de uma coleção em uma única operação ligando para o métododelete_many() em uma Collection
instância.
Passe um filtro de query para o método delete_many()
para excluir documento na collection que correspondam ao filtro. Se você não incluir um filtro, o MongoDB excluirá todos os documento na collection.
O delete_many()
método retorna um DeleteResult tipo. Este tipo contém informações sobre a operação de exclusão, como o número total de documentos excluídos.
Para saber mais sobre as operações de exclusão, consulte o guia Excluir documentos .
Dica
Para excluir todos os documentos em uma coleção, considere chamar o método drop()
em uma instância Collection
. Para saber mais sobre o método drop()
, consulte a seção Soltar uma coleção do guia Bancos de dados e coleções.
Exemplo
Este exemplo exclui todos os documentos que correspondem a um filtro de query da coleção restaurants
no banco de dados sample_restaurants
. O método delete_many()
exclui documentos nos quais o valor do campo borough
é "Manhattan"
e o valor do campo address.street
é "Broadway"
.
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 mongodb::{ bson::{ Document, doc }, Client, Collection }; use serde::{ Deserialize, Serialize }; struct Address { street: String, city: String, } struct Restaurant { name: String, borough: String, address: Address, } 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! { "$and": [ doc! { "borough": "Manhattan" }, doc! { "address.street": "Broadway" } ] }; let result = my_coll.delete_many(filter).await?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
// Your values might differ Deleted documents: 615
use mongodb::{ bson::{ Document, doc }, sync::{ Client, Collection } }; use serde::{ Deserialize, Serialize }; struct Address { street: String, city: String, } 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! { "$and": [ doc! { "borough": "Manhattan" }, doc! { "address.street": "Broadway" } ] }; let result = my_coll.delete_many(filter).run()?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
// Your values might differ Deleted documents: 615