Você pode excluir vários documentos de uma coleção em uma única operação ligando para o método delete_many() em uma instância do Collection.
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 método delete_many() retorna um tipo DeleteResult. 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 como excluir operações, 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 queries da coleção restaurants no banco de dados sample_restaurants.
Este exemplo passa um filtro de query como um parâmetro para o método delete_many() . O filtro corresponde a documentos nos quais o valor do campo borough é "Manhattan" e o valor do campo address.street é "Broadway".
Selecione a guia Asynchronous ou Synchronous para ver o código correspondente para cada tempo de execução:
use mongodb::{ bson::{ Document, doc }, Client, Collection};
async fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri).await?;
let my_coll: Collection<Document> = client .database("sample_restaurants") .collection("restaurants");
let filter = doc! { "$and": [ doc! { "borough": "Manhattan" }, doc! { "address.street": "Broadway" } ] };
let result = my_coll.delete_many(filter, None).await?;
println!("Deleted documents: {}", result.deleted_count);
Ok(())}use mongodb::{ bson::{ Document, doc }, sync::{ Client, Collection } };
fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri)?;
let my_coll: Collection<Document> = client .database("sample_restaurants") .collection("restaurants");
let filter = doc! { "$and": [ doc! { "borough": "Manhattan" }, doc! { "address.street": "Broadway" } ] };
let result = my_coll.delete_many(filter, None)?;
println!("Deleted documents: {}", result.deleted_count);
Ok(())}