Excluir um documento
Você pode excluir um documento de uma coleção ligando para o métododelete_one() em uma Collection
instância.
Passe um filtro de query para o método delete_one()
para corresponder ao documento que você deseja excluir da coleção. Se vários documentos corresponderem ao filtro de query, o MongoDB excluirá o primeiro documento correspondente de acordo com sua ordem natural no banco de dados ou de acordo com a ordem de classificação especificada em um DeleteOptions instância.
O delete_one()
método retorna um DeleteResult tipo. Este tipo contém informações sobre o resultado da 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 .
Exemplo
Este exemplo exclui um documento que corresponde a um filtro de query da coleção restaurants
no banco de dados sample_restaurants
. O método delete_one()
exclui o primeiro documento no qual o valor do campo name
é "Haagen-Dazs"
e o campo borough
é "Brooklyn"
.
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 Restaurant { name: String, borough: 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! { "$and": [ doc! { "name": "Haagen-Dazs" }, doc! { "borough": "Brooklyn" } ] }; let result = my_coll.delete_one(filter).await?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
Deleted documents: 1
use mongodb::{ bson::{ Document, doc }, sync::{ Client, Collection } }; use serde::{ Deserialize, Serialize }; struct Restaurant { name: String, borough: 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! { "$and": [ doc! { "name": "Haagen-Dazs" }, doc! { "borough": "Brooklyn" } ] }; let result = my_coll.delete_one(filter).run()?; println!("Deleted documents: {}", result.deleted_count); Ok(()) }
Deleted documents: 1